自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

又一個(gè)布局利器, CSS 偽類 :placeholder-shown

開(kāi)發(fā) 前端
一般我們常見(jiàn)placeholder偽類選擇器用來(lái)修改默認(rèn)樣式及文案,忽然發(fā)現(xiàn)placeholder-shown偽類選擇器,比較官方的解釋是。

 一般我們常見(jiàn)placeholder偽類選擇器用來(lái)修改默認(rèn)樣式及文案,忽然發(fā)現(xiàn)placeholder-shown偽類選擇器,比較官方的解釋是。

CSS偽類表示任何顯示占位符文本的form元素。

簡(jiǎn)單來(lái)說(shuō)就是當(dāng)輸入框的placeholder內(nèi)容顯示的時(shí)候,輸入框干嘛干嘛。

兼容性如下,在移動(dòng)端沒(méi)什么問(wèn)題

placeholder-show是如何工作的?

:placeholder-shown CSS 偽類 在 <input> 或 <textarea> 元素顯示 placeholder text 時(shí)生效,簡(jiǎn)單的說(shuō)就是 placeholder 有值才生效,如下所示:

  1. // html 
  2. <input placeholder="placeholder text" /> 
  3. <textarea placeholder="placeholder text"></textarea> 
  4.  
  5. // css  
  6. input:placeholder-shown, textarea:placeholder-shown{  
  7.   border:1px solid pink; 

如果 placeholder 為空 placeholder-show 就沒(méi)效果了:

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

:placeholder-shown vs ::placeholder

我們可以使用:placeholder-shown設(shè)置input元素的樣式。

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

注意一些奇怪的問(wèn)題??-我們?cè)O(shè)置 color: green,但沒(méi)有作用用。這是因?yàn)?placeholder-shown僅會(huì)針對(duì)input本身。對(duì)于實(shí)際的占位符文本,必須使用偽元素::placeholder。

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

我注意到有一些其他的屬性,如果應(yīng)用::placeholder-shown,也會(huì)影響placeholder的樣式。

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

我也不知道這是啥情況,也許是因?yàn)檫@些屬性被placeholder繼承了,如果你知道原因,歡迎留言告訴我一下,謝謝。

:placeholder-shown vs :empty

:placeholder-shown是專門(mén)用于確定元素是否顯示占位符的對(duì)象,我們主要使用它來(lái)檢查input 內(nèi)容是否為空(假設(shè)所有的input都有一個(gè)占位符)。這里你可能會(huì)想,使用 empty 也是可以的吧?我們來(lái)看看。

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

這里看似empty起作用了,因?yàn)槲覀兛吹降氖欠奂t色邊框,但這實(shí)際上不起作用??

之所以顯示粉紅色,是因?yàn)閭晤愒黾恿?css 的權(quán)重。類似于類選擇器(即.form-input)比類型選擇器(即input)具有更高的權(quán)重。高權(quán)限選擇器將始終覆蓋低權(quán)重設(shè)置的樣式。

所以我們可以這樣說(shuō):不要使用:empty檢查輸入元素是否為空。

如果檢查 input 內(nèi)容是否為空(在沒(méi)有點(diǎn)位符的情況下)?

我們檢查輸入是否為空的唯一方法是使用:placeholder-shown。但是如果我們的輸入元素沒(méi)有占位符會(huì)發(fā)生什么呢? 這里有個(gè)取巧的方法:傳入一個(gè)空字符串" "。

  1. // html 
  2. <input placeholder=" "><!-- 👈 pass empty string --> 
  3.  
  4. //css 
  5. input:placeholder-shown { 
  6.   border-color: pink; 

組合其它選擇器

我們可以使用:not偽類對(duì)某些事物進(jìn)行逆運(yùn)算。在這里,我們可以在輸入不是空的情況下進(jìn)行定位。

  1. //html 
  2. <input placeholder="placeholder" value="not empty" /> 
  3.  
  4. // css 
  5. input:not(:placeholder-shown) { 
  6.   border: 1px solid green; 

實(shí)戰(zhàn)

用placeholder-shown我們可以實(shí)現(xiàn)下面動(dòng)效

具體代碼如下:

Html

  1. <div class="input"
  2.     <input class="input-fill" placeholder="郵箱"
  3.     <label class="input-label">郵箱</label> 
  4. </div> 

Css

  1. .input{ 
  2.    position: relative
  3.  } 
  4. .input-fill{ 
  5.   border: 1px solid #ececec; 
  6.   outline: none; 
  7.   padding: 13px 16px 13px; 
  8.   font-size: 16px; 
  9.   line-height: 1.5; 
  10.   width: fit-content; 
  11.   border-radius: 5px; 
  12. .input-fill:placeholder-shown::placeholder { 
  13.   color: transparent; 
  14. .input-label { 
  15.   position: absolute
  16.   font-size: 16px; 
  17.   line-height: 1.5; 
  18.   left: 16px; top: 14px; 
  19.   color: #a2a9b6; 
  20.   padding: 0 2px; 
  21.   transform-origin: 0 0; 
  22.   pointer-events: none; 
  23.   transition: all .25s; 
  24. .input-fill:focus{ 
  25.   border: 1px solid #2486ff; 
  26. .input-fill:not(:placeholder-shown) ~ .input-label, 
  27. .input-fill:focus ~ .input-label { 
  28.   transform: scale(0.75) translate(0, -32px); 
  29.   background-color: #fff; 
  30.   color: #2486ff; 

作者:Samantha Ming 譯者:前端小智 來(lái)源:medium 原文:https://www.samanthaming.com/tidbits/88-css-placeholder-shown/

本文轉(zhuǎn)載自微信公眾號(hào)「大遷世界」,可以通過(guò)以下二維碼關(guān)注。轉(zhuǎn)載本文請(qǐng)聯(lián)系大遷世界公眾號(hào)。

 

責(zé)任編輯:武曉燕 來(lái)源: 大遷世界
相關(guān)推薦

2021-04-24 10:59:30

CSS偽類占位符

2020-02-18 20:28:23

AI人工智能

2023-05-14 23:38:43

Glarity用戶視頻

2022-02-06 20:55:39

jsEsbuild項(xiàng)目

2012-04-12 09:53:02

2014-10-11 09:15:36

2022-11-30 10:59:20

2009-04-22 15:16:30

2021-01-29 09:07:39

數(shù)據(jù)保護(hù)信息安全數(shù)據(jù)隱私

2012-06-25 10:20:22

敏捷開(kāi)發(fā)

2017-08-31 10:32:35

交付技術(shù)

2014-12-01 12:57:46

亞馬遜天貓海淘

2021-12-29 18:18:59

開(kāi)源MedusaShopify

2018-09-30 08:00:15

區(qū)塊鏈碳排放氣候

2022-07-27 12:07:58

云計(jì)算公有云云支出

2011-08-16 17:36:50

SolarisIllumos

2015-07-09 14:41:15

2009-08-17 08:54:56

2021-03-29 10:05:49

GitHub代碼開(kāi)發(fā)者

2021-08-26 05:25:56

機(jī)器人人工智能科技
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)