成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

CSS的:Placeholder-Shown偽類有什么用?

開發(fā) 前端
使用此偽類來設置當前顯示占位符文本的輸入的樣式,換句話說,用戶未在文本框中鍵入任何內容 ??

[[395429]]

使用此偽類來設置當前顯示占位符文本的輸入的樣式,換句話說,用戶未在文本框中鍵入任何內容 ??

根據(jù)您的輸入是否為空,應用一些動態(tài)樣式非常好 ??

  1. input:placeholder-shown { 
  2.   border-color: pink; 

它是如何工作的?

:placeholder-show 是CSS偽類,可讓您將樣式應用于具有占位符文本的 <input> 或 <textarea>。

  1. <input placeholder="placeholder text" /> 
  2. <textarea placeholder="placeholder text"></textarea> 

 

 

結果:

 

 

 

  • 如果顯示占位符,則為粉紅色,表示用戶未輸入任何內容
  • 如果未顯示任何占位符,則為黑色,表示用戶已鍵入內容

 

 

:placeholder-showd必須具有占位符

 

 

如果元素沒有占位符文本,則此選擇器將不起作用。

  1. <input /><!-- 沒有占位符 --> 
  2.  
  3. <!-- 這也被視為沒有占位符文本 --> 
  4. <input placeholder="" /> 
  1. input:placeholder-shown { 
  2.   border-color: pink; 

 

 

:placeholder-shown vs ::placeholder

 

 

因此,我們可以使用 :placeholder-shown 設置輸入元素的樣式。

  1. input:placeholder-shown { 
  2.   border: 1px solid pink; 
  3.   background: yellow; 
  4.   color: green; 

 

 

 

 

??嗯...注意到有些奇怪??——我們將顏色設置為:綠色,但沒有用。好吧,這是因為 :placeholder-shown 只針對輸入本身。但是對于實際的占位符文本,您必須使用偽元素 ::placeholder。

  1. input::placeholder { 
  2.   color: green; 

 

 

但是!當我在處理這個問題時,我注意到還有一些其他屬性,如果在 :placeholder-shown 級別應用,將會影響到占位符文本。

  1. input:placeholder-shown { 
  2.   font-style: italic; 
  3.   text-transform: uppercase; 
  4.   letter-spacing: 5px; 

 

 

現(xiàn)在,我真的不知道為什么會發(fā)生這種情況 ???♀? 也許是因為這些屬性被占位符繼承了。

 

 

:placeholder-shown vs :empty

 

 

盡管 :placeholder-shown 是專門用于確定元素是否顯示占位符的。實際上,我們可以使用它來檢查輸入是否為空(當然,假設所有輸入都有一個占位符)。因此,也許您的下一個問題是,我們不能使用CSS empty嗎?好吧,讓我們檢查一下 ?????

  1. <input value="not empty"
  2. <input><!-- empty --> 
  3. input:empty { 
  4.   border: 1px solid pink; 
  5.  
  6. input { 
  7.   border: 1px solid black; 

 

 

期待:

 

 

 

  • 如果為空則為粉紅色
  •  
  • 如果不為空為黑色

 

 

嗯...從這里開始,您可能會認為 :empty 似乎在起作用,因為我們看到的是粉紅色邊框。但這實際上不起作用??

 

 

粉紅色顯示的原因是因為偽類增加了特異性,類似于類選擇器(即 .form-input)比類型選擇器(即 input)具有更高的特異性。高特異性選擇器將始終覆蓋低特異性設置的樣式。

 

 

這是判決!不要使用 :empty 檢查輸入元素是否為空?

 

 

如何在沒有占位符的情況下檢查輸入是否為空?

 

 

好了,所以我們檢查輸入是否為空的唯一方法是使用 :placeholder-shown。但是,如果我們的輸入元素沒有占位符,會發(fā)生什么情況?好吧,這是一個聰明的方法!傳入一個空字符串 " "。

  1. <input placeholder=" "><!-- 👈 傳遞空字符串 --> 
  2. input:placeholder-shown { 
  3.   border-color: pink; 

 

 

與其他選擇器組合

 

 

所以,我們可以針對顯示占位符文字的輸入元素,這很酷。換句話說,如果顯示了占位符文本,那么一定意味著該元素是空的。利用這些知識,我們可以將這個偽類與其他選擇器結合起來,做一些非常整潔的事情!讓我們來看看 ??。

 

 

反向 :placeholder-shown 為 :not

 

 

我們可以使用 :not 偽類來做一些反向的事情。在這里,我們可以在輸入不是空的時候進行目標操作。

  1. <input placeholder="placeholder" value="not empty" /> 
  2. input:not(:placeholder) { 
  3.   border-color: green; 

 

 

結果:

 

 

 

  • 綠色,如果不為空,則表示用戶已經(jīng)輸入了一些內容。
  •  
  • 如果為空,則為黑色

 

 

浮動標簽

 

 

使用占位符而不使用標簽的問題之一就是無障礙,因為一旦你在打字的時候,占位符文字就沒有了,這可能會導致用戶的困惑。一個真正好的解決方案是浮動標簽。最初,占位符文本顯示時沒有標簽,而一旦用戶開始輸入,標簽就會出現(xiàn)。這樣一來,你仍然可以在不影響用戶體驗和可訪問性的前提下,保持表單的簡潔性。雙贏 ??

 

 

而這是可以用純CSS實現(xiàn)的,我們只需要將 placeholder-shown 與 :not 和 + 結合起來就可以了。這是一個超級簡化版的浮動標簽。

  1. <input name="name" placeholder="Type name..." /> 
  2. <label for="name">NAME</label> 
  3. label { 
  4.   display: none; 
  5.   position: absolute
  6.   top: 0; 
  7.  
  8. input:not(:placeholder-shown) + label { 
  9.   display: block; 

 

 

瀏覽器支持

 

 

對 :placeholder-shown 的支持非常好!這包括Internet Explorer(是的,我和你一樣驚訝??)。但是,對于IE,你需要使用非標準名稱 :-ms-input-placeholder。

 

責任編輯:武曉燕 來源: 前端全棧開發(fā)者
相關推薦

2020-07-23 08:24:14

CSS偽類選擇器

2021-04-14 20:36:57

CSS偽類函數(shù)

2022-10-19 12:00:32

CSS 偽類偽元素

2024-01-25 10:23:22

對象存儲存儲數(shù)據(jù)

2024-02-19 00:00:00

Python?starmap函數(shù)

2020-08-18 08:08:59

CSS偽元素偽類

2010-09-03 11:24:49

CSS偽類

2023-12-13 15:28:32

Python工具數(shù)據(jù)

2009-06-17 15:51:55

java有什么用

2017-11-22 15:50:58

Netty微服務RPC

2022-05-05 07:38:32

volatilJava并發(fā)

2017-09-19 15:22:44

2020-08-10 07:44:13

虛擬內存交換內存Linux

2021-04-20 09:44:42

CSS函數(shù)選擇器

2021-02-21 23:49:45

比特幣貨幣人民幣

2010-09-06 11:26:18

CSS偽類

2010-09-07 10:57:34

CSS偽類

2023-07-21 17:08:30

2023-12-20 14:48:26

2023-10-10 08:24:12

點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 亚洲一区二区久久 | 国产免费a | 国产女人第一次做爰毛片 | 狠狠爱一区二区三区 | 日韩欧美一级片 | 自拍视频一区二区三区 | 一级片视频免费观看 | 国产黄色av电影 | 精品日韩一区二区 | 国产成人jvid在线播放 | 99久久99久久精品国产片果冰 | 国产日韩精品在线 | 婷婷色成人 | 亚洲激情一区二区 | 视频一区在线 | 日韩在线观看一区 | 成人无遮挡毛片免费看 | 亚洲精品成人 | 欧美日本韩国一区二区三区 | 久久国产精99精产国高潮 | 国产大片一区 | 国产乱码精品一品二品 | 中日字幕大片在线播放 | 在线观看www | 亚洲码欧美码一区二区三区 | 91av在线免费播放 | 国产精品a久久久久 | 亚洲一二三区不卡 | 日韩午夜一区二区三区 | 欧美日韩亚洲视频 | 一区二区三区欧美 | 国产资源在线观看 | 久日精品 | 欧美一区二区三区在线 | 中国91av| 国产精品久久国产精品 | 欧美视频区 | 亚洲国产成人精品久久 | 久久综合狠狠综合久久综合88 | 亚洲精品不卡 | 欧美性影院|