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

又一個布局利器, CSS 偽類 :placeholder-shown

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

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

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

簡單來說就是當輸入框的placeholder內(nèi)容顯示的時候,輸入框干嘛干嘛。

兼容性如下,在移動端沒什么問題

placeholder-show是如何工作的?

:placeholder-shown CSS 偽類 在 <input> 或 <textarea> 元素顯示 placeholder text 時生效,簡單的說就是 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 就沒效果了:

  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; 

注意一些奇怪的問題??-我們設(shè)置 color: green,但沒有作用用。這是因為:placeholder-shown僅會針對input本身。對于實際的占位符文本,必須使用偽元素::placeholder。

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

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

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

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

:placeholder-shown vs :empty

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

  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起作用了,因為我們看到的是粉紅色邊框,但這實際上不起作用??

之所以顯示粉紅色,是因為偽類增加了 css 的權(quán)重。類似于類選擇器(即.form-input)比類型選擇器(即input)具有更高的權(quán)重。高權(quán)限選擇器將始終覆蓋低權(quán)重設(shè)置的樣式。

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

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

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

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

組合其它選擇器

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

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

實戰(zhàn)

用placeholder-shown我們可以實現(xiàn)下面動效

具體代碼如下:

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 譯者:前端小智 來源:medium 原文:https://www.samanthaming.com/tidbits/88-css-placeholder-shown/

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

 

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

2021-04-24 10:59:30

CSS偽類占位符

2020-02-18 20:28:23

AI人工智能

2022-02-06 20:55:39

jsEsbuild項目

2023-05-14 23:38:43

Glarity用戶視頻

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ù)保護信息安全數(shù)據(jù)隱私

2012-06-25 10:20:22

敏捷開發(fā)

2017-08-31 10:32:35

交付技術(shù)

2014-12-01 12:57:46

亞馬遜天貓海淘

2021-12-29 18:18:59

開源MedusaShopify

2018-09-30 08:00:15

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

2011-08-16 17:36:50

SolarisIllumos

2022-07-27 12:07:58

云計算公有云云支出

2009-08-17 08:54:56

2015-07-09 14:41:15

2021-03-29 10:05:49

GitHub代碼開發(fā)者

2019-05-29 10:55:01

開源Linux發(fā)行版
點贊
收藏

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

主站蜘蛛池模板: 欧美在线小视频 | 天堂成人国产精品一区 | 中文字幕 在线观看 | 在线免费看91 | 日日干夜夜干 | 中日字幕大片在线播放 | 亚洲天堂中文字幕 | 国产一级一级国产 | 天堂在线www | 在线成人www免费观看视频 | 成人激情视频免费观看 | 成人h视频在线 | 99精品免费视频 | 欧美一级二级在线观看 | 午夜一区 | 羞羞视频在线网站观看 | 亚洲国产高清在线观看 | www.色.com| 亚洲视频免费一区 | 日韩精品视频在线 | 国内毛片毛片毛片毛片 | 风间由美一区二区三区在线观看 | 国产高清一区二区三区 | 精品亚洲一区二区三区 | 天堂中文av | 99国产精品99久久久久久 | 日韩成人免费视频 | 亚洲精久久| 少妇午夜一级艳片欧美精品 | 91精品国产综合久久婷婷香蕉 | 能看的av| 日韩精品一二三区 | 91一区二区三区在线观看 | 欧美激情精品久久久久久 | 国产亚洲精品精品国产亚洲综合 | 午夜免费网站 | 91久久久久久久久久久久久 | 一区二区在线免费观看视频 | 国产精品免费av | 亚洲高清一区二区三区 | 国产精品久久午夜夜伦鲁鲁 |