目錄
選擇輸入佔位符
使用 Sass 設置佔位符樣式
設置佔位符樣式時注意特異性
注意佔位符的不透明度
關於 CSS 佔位符文本的常見問題解答 (FAQ)
如何更改 CSS 中佔位符文本的顏色?
我可以更改佔位符文本的字體大小嗎?
是否可以更改佔位符文本的字體樣式?
我可以更改佔位符文本的不透明度嗎?
如何向佔位符文本添加背景顏色?
我可以在佔位符文本上使用 CSS 動畫嗎?
是否可以以不同的方式設置不同的佔位符樣式?
我可以將偽類與 ::placeholder 一起使用嗎?
是否可以使用 CSS 更改佔位符文本?
我可以在 ::placeholder 中使用媒體查詢嗎?
首頁 web前端 css教學 ATOZ CSS快速提示:佔位符文字

ATOZ CSS快速提示:佔位符文字

Feb 20, 2025 am 11:29 AM

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

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

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

AI Clothes Remover

AI Clothes Remover

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

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

帶有粘性定位的堆疊卡和一點點的雜物 帶有粘性定位的堆疊卡和一點點的雜物 Apr 03, 2025 am 10:30 AM

前幾天,我發現了科里·金尼文(Corey Ginnivan)網站上的這一點,當您滾動時,彼此之間的卡片堆放集。

Google字體可變字體 Google字體可變字體 Apr 09, 2025 am 10:42 AM

我看到Google字體推出了新設計(Tweet)。與上一次大型重新設計相比,這感覺更加迭代。我幾乎無法分辨出區別

如何使用HTML,CSS和JavaScript創建動畫倒計時計時器 如何使用HTML,CSS和JavaScript創建動畫倒計時計時器 Apr 11, 2025 am 11:29 AM

您是否曾經在項目上需要一個倒計時計時器?對於這樣的東西,可以自然訪問插件,但實際上更多

為什麼Flex佈局中的紫色斜線區域會被誤認為是'溢出空間”? 為什麼Flex佈局中的紫色斜線區域會被誤認為是'溢出空間”? Apr 05, 2025 pm 05:51 PM

關於Flex佈局中紫色斜線區域的疑問在使用Flex佈局時,你可能會遇到一些令人困惑的現象,比如在開發者工具(d...

如何通過CSS選擇第一個類名為item的子元素? 如何通過CSS選擇第一個類名為item的子元素? Apr 05, 2025 pm 11:24 PM

在元素個數不固定的情況下如何通過CSS選擇第一個指定類名的子元素在處理HTML結構時,常常會遇到元素個數不�...

HTML數據屬性指南 HTML數據屬性指南 Apr 11, 2025 am 11:50 AM

您想了解的有關HTML,CSS和JavaScript中數據屬性的所有信息。

使Sass更快的概念證明 使Sass更快的概念證明 Apr 16, 2025 am 10:38 AM

在一個新項目開始時,Sass彙編發生在眼睛的眨眼中。感覺很棒,尤其是當它與browsersync配對時,它重新加載

在前端開發中,如何使用CSS和JavaScript實現類似Windows 10設置界面的探照燈效果? 在前端開發中,如何使用CSS和JavaScript實現類似Windows 10設置界面的探照燈效果? Apr 05, 2025 pm 10:21 PM

在前端開發中如何實現類似Windows...

See all articles