搜尋
首頁web前端css教學ATOZ CSS快速提示:佔位符文字

AtoZ CSS Quick Tip: Placeholder Text

本文是 AtoZ CSS 系列的一部分。您可以在這裡找到該系列的其他條目。您可以查看其對應視頻偽元素的完整文本和屏幕截圖。

歡迎來到我們的 AtoZ CSS 系列!在本系列中,我將探討以字母表中不同字母開頭的各種 CSS 值(和屬性)。我們知道,有時屏幕截圖是不夠的,因此在本文中,我們添加了一個關於樣式佔位符文本的新技巧。

AtoZ CSS Quick Tip: Placeholder Text

P 代表佔位符文本

偽元素 :before:after 非常適合構建複雜的設計功能,而不會使用非語義元素使標記混亂。其他偽元素,如 :first-line:first-letter,使我們可以訪問 HTML 文檔中未標記的元素部分的樣式。

我們在偽元素屏幕截圖中查看了許多這些內容,但我們沒有查看的一個偽元素是用於設置佔位符文本的樣式。讓我們來解決這個問題。

選擇輸入佔位符

首先,讓我們想像一下以下 HTML:

<input class="name-field" type="text" placeholder="Enter your name">

我們可以將輸入文本的顏色設置為紅色,如下所示:

.name-field {
  color: red;
}

我們還可以根據其占位符屬性選擇和設置輸入的樣式:

input[placeholder="Enter your name"] {
  color: red;
}

但這仍然會設置輸入字段中鍵入的任何用戶輸入文本的樣式,而不是設置佔位符文本本身的外觀。為此,我們需要一系列針對占位符偽元素的供應商前綴選擇器。

::-webkit-input-placeholder {
  color: red;
}
:-moz-placeholder {/*Firefox 18-*/
  color: red;  
}
::-moz-placeholder {/*Firefox 19+*/
  color: red;  
}
:-ms-input-placeholder {  
  color: red;  
}

這看起來像是重複,但不幸的是,沒有更簡潔(Don’t Repeat Yourself)的方法來做到這一點。

以下方法無效:

::-webkit-input-placeholder,
:-moz-placeholder,
::-moz-placeholder,
:-ms-input-placeholder {
  color: red;  
}

這是因為任何瀏覽器都必須能夠“理解”逗號分隔系列中的每個選擇器,才能應用大括號內的樣式。

使用 Sass 設置佔位符樣式

解決這種重複 CSS 的一種方法是使用 Sass 混合宏。這是我在 99% 的項目中使用的:

@mixin input-placeholder {
  ::-webkit-input-placeholder {
    @content;
  }
  :-moz-placeholder {/* Firefox 18- */
    @content;
  }
  ::-moz-placeholder {/* Firefox 19+ */
    @content;
  }
  :-ms-input-placeholder {  
    @content;
  }
}

/* usage */

@include input-placeholder {
  color: red;
}

這允許我使用單個 Sass @include 在所有瀏覽器中設置佔位符的樣式,這有助於使代碼更短、更易於維護。

設置佔位符樣式時注意特異性

在 IE 瀏覽器中,設置輸入的樣式可能會覆蓋為佔位符文本設置的樣式。

:-ms-input-placeholder {
  color: red;
}
input[type="text"] { 
  color: blue; /* 占位符文本在 IE 中将为蓝色 */
}

確保 IE 佔位符樣式具有更高的特異性,以便它們按預期顯示。這甚至可能是使用 !important 的一個案例,但在使用這個強大的工具時務必小心。

注意佔位符的不透明度

在 Firefox 中,佔位符文本的默認不透明度約為 0.5,因此除非您還設置 opacity: 1,否則在佔位符上設置 color: red 將導致顏色變暗。

即使您使用 Normalize.css,也不會為您重置此項。如果完全不透明的佔位符對您的項目至關重要,請記住此技巧!

關於 CSS 佔位符文本的常見問題解答 (FAQ)

如何更改 CSS 中佔位符文本的顏色?

可以通過使用 ::placeholder 偽元素來更改 CSS 中佔位符文本的顏色。此偽元素允許您設置輸入或文本區域元素中佔位符文本的樣式。以下是如何將顏色更改為紅色的示例:

<input class="name-field" type="text" placeholder="Enter your name">

請記住,瀏覽器兼容性很重要。對於 Firefox,使用 ::-moz-placeholder;對於 Internet Explorer,使用 :-ms-input-placeholder;對於 Chrome、Safari 和 Opera,使用 ::-webkit-input-placeholder

我可以更改佔位符文本的字體大小嗎?

是的,您可以更改佔位符文本的字體大小。就像更改顏色一樣,您可以使用 ::placeholder 偽元素來更改字體大小。這是一個示例:

.name-field {
  color: red;
}

這會將佔位符文本的字體大小更改為 18px。

是否可以更改佔位符文本的字體樣式?

絕對可以,您可以更改佔位符文本的字體樣式。您可以使其為斜體、粗體或任何您想要的其他樣式。以下是如何使其為斜體的示例:

input[placeholder="Enter your name"] {
  color: red;
}

這會將佔位符文本的字體樣式更改為斜體。

我可以更改佔位符文本的不透明度嗎?

是的,您可以更改佔位符文本的不透明度。這可以通過在 CSS 中使用 opacity 屬性來完成。這是一個示例:

::-webkit-input-placeholder {
  color: red;
}
:-moz-placeholder {/*Firefox 18-*/
  color: red;  
}
::-moz-placeholder {/*Firefox 19+*/
  color: red;  
}
:-ms-input-placeholder {  
  color: red;  
}

這會將佔位符文本的不透明度更改為 0.5,使其半透明。

如何向佔位符文本添加背景顏色?

不幸的是,您無法向佔位符文本添加背景顏色。 ::placeholder 偽元素僅允許您設置佔位符文本的顏色、字體大小、字體樣式和不透明度。它不支持 background-color 等其他屬性。

我可以在佔位符文本上使用 CSS 動畫嗎?

不可以,您無法在佔位符文本上使用 CSS 動畫。 ::placeholder 偽元素不支持 CSS 動畫或過渡。

是否可以以不同的方式設置不同的佔位符樣式?

是的,您可以以不同的方式設置不同的佔位符樣式。您只需要為每個輸入或文本區域元素使用不同的類或 ID。這是一個示例:

::-webkit-input-placeholder,
:-moz-placeholder,
::-moz-placeholder,
:-ms-input-placeholder {
  color: red;  
}

這將使具有類“input1”的輸入中的佔位符文本為紅色,而具有類“input2”的輸入中的佔位符文本為藍色。

我可以將偽類與 ::placeholder 一起使用嗎?

不可以,您不能將 :hover:active:focus 等偽類與 ::placeholder 一起使用。 ::placeholder 偽元素不支持偽類。

是否可以使用 CSS 更改佔位符文本?

不可以,您不能使用 CSS 更改佔位符文本。佔位符文本的內容只能使用 HTML 更改。

我可以在 ::placeholder 中使用媒體查詢嗎?

是的,您可以在 ::placeholder 中使用媒體查詢。這允許您根據屏幕大小或設備以不同的方式設置佔位符文本的樣式。這是一個示例:

<input class="name-field" type="text" placeholder="Enter your name">

這會將屏幕寬度為 600px 或更小的屏幕上的佔位符文本的顏色更改為紅色。

以上是ATOZ CSS快速提示:佔位符文字的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
這麼多顏色鏈接這麼多顏色鏈接Apr 13, 2025 am 11:36 AM

最近有一系列有關顏色的工具,文章和資源。請允許我通過將它們四捨五之後關閉幾個標籤,以供您享受。

自動利潤在Flexbox中的工作方式自動利潤在Flexbox中的工作方式Apr 13, 2025 am 11:35 AM

羅賓以前已經介紹過這一點,但是我在過去的幾周里聽到了一些關於它的困惑,看到另一個人在解釋它,我想

移動彩虹移動彩虹Apr 13, 2025 am 11:27 AM

我絕對喜歡三明治網站的設計。在許多美麗的功能中,這些標題是滾動時帶有彩虹的下線。它不是

新年,新工作?讓我們做一個網格驅動的簡歷!新年,新工作?讓我們做一個網格驅動的簡歷!Apr 13, 2025 am 11:26 AM

許多流行的簡歷設計通過以網格形狀鋪設部分來充分利用可用的頁面空間。讓我們使用CSS網格創建一個佈局

將用戶擺脫過多習慣的一種方法將用戶擺脫過多習慣的一種方法Apr 13, 2025 am 11:25 AM

頁面重新加載是一回事。有時,當我們認為它沒有響應或認為新內容可用時,我們會刷新頁面。有時我們只是生氣

域驅動的設計與React域驅動的設計與ReactApr 13, 2025 am 11:22 AM

關於如何在React世界中組織前端應用的指導很少。 (只需移動文件,直到“感覺正確”,大聲笑)。真相

檢測非活動用戶檢測非活動用戶Apr 13, 2025 am 11:08 AM

大多數情況下,您並不真正在乎用戶是否積極參與或暫時非活動。不活躍,意思,也許他們

Wufoo ZapierWufoo ZapierApr 13, 2025 am 11:02 AM

Wufoo一直在集成方面非常出色。他們與特定應用程序(例如廣告系列顯示器,MailChimp和Typekit)進行集成,但他們也

See all articles

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

AI Hentai Generator

AI Hentai Generator

免費產生 AI 無盡。

熱門文章

R.E.P.O.能量晶體解釋及其做什麼(黃色晶體)
3 週前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.最佳圖形設置
3 週前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.如果您聽不到任何人,如何修復音頻
3 週前By尊渡假赌尊渡假赌尊渡假赌
WWE 2K25:如何解鎖Myrise中的所有內容
4 週前By尊渡假赌尊渡假赌尊渡假赌

熱工具

DVWA

DVWA

Damn Vulnerable Web App (DVWA) 是一個PHP/MySQL的Web應用程序,非常容易受到攻擊。它的主要目標是成為安全專業人員在合法環境中測試自己的技能和工具的輔助工具,幫助Web開發人員更好地理解保護網路應用程式的過程,並幫助教師/學生在課堂環境中教授/學習Web應用程式安全性。 DVWA的目標是透過簡單直接的介面練習一些最常見的Web漏洞,難度各不相同。請注意,該軟體中

VSCode Windows 64位元 下載

VSCode Windows 64位元 下載

微軟推出的免費、功能強大的一款IDE編輯器

MinGW - Minimalist GNU for Windows

MinGW - Minimalist GNU for Windows

這個專案正在遷移到osdn.net/projects/mingw的過程中,你可以繼續在那裡關注我們。 MinGW:GNU編譯器集合(GCC)的本機Windows移植版本,可自由分發的導入函式庫和用於建置本機Windows應用程式的頭檔;包括對MSVC執行時間的擴展,以支援C99功能。 MinGW的所有軟體都可以在64位元Windows平台上運作。

ZendStudio 13.5.1 Mac

ZendStudio 13.5.1 Mac

強大的PHP整合開發環境

WebStorm Mac版

WebStorm Mac版

好用的JavaScript開發工具