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

CSS 實(shí)用技巧:偽元素&偽類的妙用

開發(fā) 前端
在一個(gè)網(wǎng)頁(yè)中CSS占著非常重要的地位。近年來隨著CSS的發(fā)展,偽元素/偽類也開始被大量應(yīng)用:在性能愈加被看中的當(dāng)下,處于文檔流之外的CSS偽元素/偽類是當(dāng)之無愧的“無冕之王” !

在一個(gè)網(wǎng)頁(yè)中CSS占著非常重要的地位。近年來隨著CSS的發(fā)展,偽元素/偽類也開始被大量應(yīng)用:在性能愈加被看中的當(dāng)下,處于文檔流之外的CSS偽元素/偽類是當(dāng)之無愧的“無冕之王” !

[[338215]]

下面筆者總結(jié)的一些關(guān)于CSS的“騷操作”,希望能對(duì)你有所幫助:

:hover和:focus顯示浮層

我們完全可以只用CSS的父子選擇器(用于“父子嵌套”)/兄弟選擇器(用于“同級(jí)并列排列”)+偽類 :hover 實(shí)現(xiàn)【當(dāng)鼠標(biāo)滑入顯示xxx】,甚至不用JS!比如:當(dāng)鼠標(biāo)滑入鏈接時(shí)顯示圖片

  1. <a href="javascript:;">圖片鏈接</a> 
  2. <img src="xxx" alt="" /> 
  1. img{ 
  2.       visibility: hidden; 
  3.       position: absolute
  4.       transition: visibility .2s;  /** 設(shè)置延時(shí) **/ 
  5. a:hover + img, 
  6. img:hover{ 
  7.   visibility: visible; 

最后又加了 img:hover 是為了讓鼠標(biāo)在圖片上滑動(dòng)時(shí)也保持圖片的顯示狀態(tài) —— 防止圖片覆蓋鏈接顯示的情況。

但是這樣會(huì)在一種情況下“失效”:無鼠標(biāo)環(huán)境。比如:移動(dòng)端、智能設(shè)備。我們可以再為img加上偽類 :focus 來優(yōu)化體驗(yàn) —— 聚焦態(tài):

  1. a:focus + img, 
  2. img:focus{ 
  3.     visibility: visible; 
  4.     transition: none; 

 

:focus:hover

 

上面的代碼想必你想到了更好的應(yīng)用場(chǎng)景:純CSS實(shí)現(xiàn)下拉列表(二級(jí)菜單)

事實(shí)上,在下拉列表中。我不建議使用“非父子關(guān)系的并列元素” —— 如果你只是單純的使用css的話。問題就出在focus上::focus 只有在當(dāng)前元素處于聚焦?fàn)顟B(tài)時(shí)才匹配。那么,這就需要一系列方案去單純的解決這個(gè)問題,比如上面設(shè)置transition延時(shí)就是為了這個(gè)效果。但其實(shí)這還是“不算問題的問題”:因?yàn)闉g覽器支持了新規(guī)范::focus-within,它規(guī)定“在當(dāng)前元素或是當(dāng)前元素的任意子元素處于聚焦?fàn)顟B(tài)時(shí)都會(huì)匹配”!它本質(zhì)上是一種“父選擇器行為”:

  1. <div class="y-table"
  2.      <a href="javascript:;" class="y-msg">我的消息</a> 
  3.      <div class="cs-list"
  4.           <a href="javascript:;">我的回答</a> 
  5.           <a href="javascript:;">我的私信</a> 
  6.           <a href="javascript:;">我的訂單</a> 
  7.           <a href="javascript:;">我的關(guān)注</a> 
  8.           <a href="javascript:;">我的收藏</a> 
  9.       </div> 
  10. </div> 
  1. .cs-list{ 
  2.   display: none; 
  3.   position: absolute
  4.   border: 1px solid red; 
  5.   background-color: #fff; 
  6. .y-table:focus-within .cs-list{ 
  7.   display: block; 

:focus-within

 

:not()判斷顯示元素

在網(wǎng)頁(yè)的【搜索】按鈕中,有這樣一種場(chǎng)景:根據(jù)輸入的關(guān)鍵字顯示列表。筆者曾寫過一篇文章,用JavaScript闡述了其場(chǎng)景:(JavaScript)百度/Google 搜索的即時(shí)自動(dòng)補(bǔ)全功能究竟是如何“工作”的?

其實(shí)我們也可以用CSS的 :not() 來優(yōu)化顯示 —— 判斷不是xxx的符合條件的信息:

  1. .list:not([class="show"]) { display: none; } 

CSS3選擇器中,有一個(gè)叫做屬性選擇器的東西,有:[attr](有該屬性), [attr=xxx](屬性值是xxx), [attr^=xxx](屬性值是xxx開頭), [attr$=xxx](屬性值以xxx結(jié)尾), [attr*=xxx](屬性值包含xxx) 這些用法。

然后在篩選時(shí)根據(jù)“是不是符合條件”為返回列表的某些項(xiàng)動(dòng)態(tài)加上show類名。甚至我們可以配合“自定義數(shù)據(jù)屬性”:

:not

 

點(diǎn)擊按鈕顯示菊花圖

說一個(gè)很常見的使用場(chǎng)景:在表單里,當(dāng)你點(diǎn)擊提交按鈕時(shí),如果能夠讓用戶看到“更多的反饋效果”似乎這個(gè)網(wǎng)頁(yè)會(huì)更受歡迎一些。那么,當(dāng)你“提交表單”時(shí)讓用戶知道自己再等待狀態(tài)似乎是個(gè)不錯(cuò)的選擇:

 

通過JavaScript控制類名,在點(diǎn)擊時(shí)給button按鈕施加loading-name,將其文字變透明,并將背景設(shè)置為一個(gè)loading圖!

 

當(dāng)你看到“點(diǎn)擊時(shí)”,我想你應(yīng)該有那么一瞬間要想到“偽類:focus”或者“偽類:active”,試著改寫一下吧!

:active實(shí)現(xiàn)“數(shù)據(jù)上報(bào)”

其實(shí)網(wǎng)頁(yè)中還有一個(gè)小問題:如果用戶禁用了JavaScript/瀏覽器不支持JavaScript怎么辦?當(dāng)然,后一種情況現(xiàn)在基本不會(huì)出現(xiàn),但是這確實(shí)是一種令人感到棘手的問題,并且吸引了大量前端開發(fā)者為之傾覆心血!

關(guān)于這個(gè)問題在筆者其他文章中也有提及,這里我們只說下“數(shù)據(jù)上報(bào)”:如果沒有form也不支持JavaScript(沒法用ajax了啊)怎么將數(shù)據(jù)傳給后端?幸好有偽類 :active —— 點(diǎn)擊態(tài)!它原來是只對(duì)a的,現(xiàn)在也支持所有HTML標(biāo)簽了。但是你可能會(huì)問了:這個(gè)偽類不是一般只用來改變鏈接的顏色什么的?單單只有這個(gè)元素當(dāng)然不行,但是不知道你有沒有想到【判斷點(diǎn)擊次數(shù)】這個(gè)經(jīng)典demo!

我們通常會(huì)將active和after結(jié)合使用:

 

即使你不相信,但它確實(shí)會(huì)向服務(wù)器發(fā)送一條請(qǐng)求,并將數(shù)據(jù)攜帶上傳!

這里為什么用url?如果不用圖片格式的話,after-content的字符串格式中只能寫固定值。

::after和::before的場(chǎng)景

作為偽元素/偽類中的“扛把子”,after和before怎么能不說呢?他們的使用場(chǎng)景太多了:常見的“文字之間的‘|’符號(hào)”、“文字前后的橫線”、“一些特殊的圖案乃至組合圖案”中都能見到他們的身影:

 

 

 


 

:after

 

一個(gè)“搜索圖標(biāo)”樣式的實(shí)現(xiàn)

 

 


 

 

 


 

一個(gè)純CSS實(shí)現(xiàn)的很炫酷的“loading”

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

 

責(zé)任編輯:武曉燕 來源: 前端工匠
相關(guān)推薦

2016-10-19 14:54:46

css選擇器css3css

2022-10-19 12:00:32

CSS 偽類偽元素

2010-09-06 12:32:10

CSS偽元素

2022-05-30 09:01:13

CSS技巧前端

2010-09-14 10:41:24

DIV+CSS排版

2010-09-03 11:24:49

CSS偽類

2021-07-30 07:28:16

偽類偽元素CSS

2010-09-07 10:39:59

CSS偽元素

2021-04-20 09:44:42

CSS函數(shù)選擇器

2019-10-12 15:42:36

CSS代碼前端

2010-09-06 11:26:18

CSS偽類

2010-09-07 10:57:34

CSS偽類

2023-05-22 15:37:31

CSS元素JavaScript

2020-05-19 08:59:19

CSS偽元素開發(fā)

2023-11-30 08:19:52

偽類CSS

2021-04-14 20:36:57

CSS偽類函數(shù)

2024-06-21 14:47:52

2023-08-14 15:56:52

CSS 偽元素開發(fā)

2009-09-04 10:27:28

Linux實(shí)用技巧linux操作系統(tǒng)linux

2022-03-23 09:18:10

Git技巧Linux
點(diǎn)贊
收藏

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

主站蜘蛛池模板: 色成人免费网站 | 国产精品视频综合 | 欧美成视频| 欧美极品在线 | 免费观看一级特黄欧美大片 | 91社区在线观看高清 | 久在线观看 | 日韩av一区二区在线观看 | 99这里只有精品视频 | av一区二区在线观看 | 日韩免费一区二区 | 免费国产一区 | av三级在线观看 | 日韩欧美在线不卡 | 欧美色图综合网 | 欧美综合一区二区 | 免费黄色的视频 | 国产精品久久久久一区二区三区 | 欧美www在线| 国产精品一区二区不卡 | 日韩精品久久一区二区三区 | 日本不卡一区二区三区 | 亚洲一区二区在线播放 | 久久久久久国产精品免费免费 | 高清av电影 | 亚欧精品一区 | 国产 欧美 日韩 一区 | 国产一区二区三区久久久久久久久 | 在线一区观看 | 老熟女毛片 | 国产三级在线观看播放 | 久久精品国产一区 | 久在线观看 | 午夜网址 | 九九热精品视频 | 成人国产精品久久久 | 欧美成年人网站 | 精品亚洲一区二区三区 | 国产精品夜色一区二区三区 | 国产免费av在线 | 岛国av一区二区三区 |