偽選擇器-偽類vs偽元素

偽類與偽元素都很常見钠至,我們經常使用偽類來實現(xiàn)執(zhí)行一些操作之后樣式的變化钟沛,比如:link矾柜,:active窄刘,:hover窥妇,:visited等偽類經常被添加到元素上來實現(xiàn)一個鏈接不同狀態(tài)下的不同效果。

本文思路:

偽類與偽元素是什么娩践?有何異同秩伞?對應的應用場景?

那么先說下偽選擇器吧欺矫。

首先,偽類與偽元素都屬于偽選擇器展氓;都是為了改變樣式而存在的穆趴。

一般來說,我們 都是通過JS控制DOM來改變樣式的遇汞,而偽選擇器則是另一種不用通過JS來改變樣式的方法未妹。

其次簿废,偽選擇器是為了修飾在文檔中不存在的一部分


偽類與偽元素之所以存在络它,必然是為了彌補當下既有的普通類與普通選擇器的不足族檬,完成它們不能完成的工作,使得某些行為更具靈活性化戳。

所以单料,我們需要知道它們的工作原理,其次点楼,分析它們 之間的不同扫尖,再思考實際應用場景當中如何應用它們使工作得心應手。


什么是偽類掠廓?

偽類通常是添加一個實際的類换怖,并為它添加效果;

它可以通過選擇器找到那些不存在DOM樹中的信息蟀瞧,并且不能被常規(guī)CSS選擇器找到的信息沉颂。

一般之前會添加一個冒號表示這是一個偽類。



什么是偽元素悦污?

偽元素類似于添加一個實際的元素铸屉,完成普通選擇器不能完成的工作;

本身是基于元素的抽象塞关,并不存在于文檔結構中抬探。

一般之前會添加兩個冒號表示這是一個偽選擇器。

————————————————

常見的偽元素選擇器:

::first-letter 選擇元素文本的第一個字(母)帆赢。

? ::first-line 選擇元素文本的第一行小压。

? ::before 在元素內容的最前面添加新內容。

? ::after 在元素內容的最后面添加新內容椰于。

? ::selection匹配用戶被用戶選中或者處于高亮狀態(tài)的部分

? ::placeholder匹配占位符的文本怠益,只有元素設置了placeholder屬性時,該偽元素才能生效瘾婿。


如果網(wǎng)站只需要兼容 webkit蜻牢、firefox、opera 等瀏覽器偏陪,偽元素最好采用雙冒號的寫法抢呆,如果不得不兼容 IE 瀏覽器,還是用 CSS2 的單冒號寫法比較安全笛谦。


關于偽類的補充----偽類有以下幾種類型:

1.狀態(tài)偽類

用戶交互過程中元素狀態(tài)是動態(tài)變化的抱虐,并且會根據(jù)狀態(tài)呈現(xiàn)不同樣式。當元素處于某狀態(tài)時會呈現(xiàn)該樣式饥脑,而進入另一狀態(tài)后恳邀,該樣式也會失去懦冰。

常見的狀態(tài)偽類主要包括:

? ? ? :link 應用于未被訪問過的鏈接;? ?

? ? ? :hover 應用于鼠標懸停到的元素谣沸;

? ? ? :active 應用于被激活的元素刷钢;

? ? ? :visited 應用于被訪問過的鏈接,與:link互斥乳附。

? ? ? :focus 應用于擁有鍵盤輸入焦點的元素内地。

————————————————

2.結構化偽類

CSS3新增的選擇器,利用DOM樹進行元素過濾许溅,通過文檔結構的互相關系來匹配元素瓤鼻,可以減少Id與class屬性定義,使文檔結構更簡潔贤重。

常見的結構性偽類包括:

? ? ? :first-child 選擇某個元素的第一個子元素茬祷;?

? ? ? :last-child 選擇某個元素的最后一個子元素;

? ? ? :nth-child() 選擇某個元素的一個或多個特定的子元素并蝗;

? ? ? :nth-last-child() 選擇某個元素的一個或多個特定的子元素祭犯,從這個元素的最后一個子元素開始算;

? ? ? :nth-of-type() 選擇指定的元素滚停;

? ? ? :nth-last-of-type() 選擇指定的元素沃粗,從元素的最后一個開始計算;

? ? ? :first-of-type 選擇一個上級元素下的第一個同類子元素键畴;

? ? ? :last-of-type 選擇一個上級元素的最后一個同類子元素最盅;

? ? ? :only-child 選擇的元素是它的父元素的唯一一個子元素;

? ? ? :only-of-type 選擇一個元素是它的上級元素的唯一一個相同類型的子元素起惕;

? ? ? :empty 選擇的元素里面沒有任何內容涡贱。

? ? ? :checked匹配被選中的input元素,這個input元素包括radio和checkbox惹想。

? ? ? :default匹配默認選中的元素问词,例如:提交按鈕總是表單的默認按鈕。

? ? ? :disabled匹配禁用的表單元素嘀粱。

? ? ? :enabled匹配沒有設置disabled屬性的表單元素激挪。

? ? ? :valid匹配條件驗證正確的表單元素。


應用場景

一.偽類

1.清除浮動

2.元素垂直居中(基線)

3.給盒子添加陰影(rgba代替box-shadow锋叨,也可以避免repaint垄分,也是CSS性能優(yōu)化的方法之一)

做法:設置一個空的偽元素設置陰影透明度為0隱藏,再通過鼠標懸屯藁牵恢復它的透明度锋喜。

4.面包屑導航(用:before添加content,再添加/)

5.對話框的小箭頭

6.提示框

7.自動打字效果(光標)

8.文章水印

9.圖片遮罩

————————————————

二.偽元素

1.清除浮動

2.畫分割線

3.計數(shù)器

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市嘿般,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌涯冠,老刑警劉巖炉奴,帶你破解...
    沈念sama閱讀 221,695評論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異蛇更,居然都是意外死亡瞻赶,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,569評論 3 399
  • 文/潘曉璐 我一進店門派任,熙熙樓的掌柜王于貴愁眉苦臉地迎上來砸逊,“玉大人,你說我怎么就攤上這事掌逛∈σ荩” “怎么了?”我有些...
    開封第一講書人閱讀 168,130評論 0 360
  • 文/不壞的土叔 我叫張陵豆混,是天一觀的道長篓像。 經常有香客問我,道長皿伺,這世上最難降的妖魔是什么员辩? 我笑而不...
    開封第一講書人閱讀 59,648評論 1 297
  • 正文 為了忘掉前任,我火速辦了婚禮鸵鸥,結果婚禮上奠滑,老公的妹妹穿的比我還像新娘。我一直安慰自己妒穴,他們只是感情好宋税,可當我...
    茶點故事閱讀 68,655評論 6 397
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著宰翅,像睡著了一般弃甥。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上汁讼,一...
    開封第一講書人閱讀 52,268評論 1 309
  • 那天淆攻,我揣著相機與錄音,去河邊找鬼嘿架。 笑死瓶珊,一個胖子當著我的面吹牛,可吹牛的內容都是我干的耸彪。 我是一名探鬼主播伞芹,決...
    沈念sama閱讀 40,835評論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了唱较?” 一聲冷哼從身側響起扎唾,我...
    開封第一講書人閱讀 39,740評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎南缓,沒想到半個月后胸遇,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經...
    沈念sama閱讀 46,286評論 1 318
  • 正文 獨居荒郊野嶺守林人離奇死亡汉形,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 38,375評論 3 340
  • 正文 我和宋清朗相戀三年纸镊,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片概疆。...
    茶點故事閱讀 40,505評論 1 352
  • 序言:一個原本活蹦亂跳的男人離奇死亡逗威,死狀恐怖,靈堂內的尸體忽然破棺而出岔冀,到底是詐尸還是另有隱情凯旭,我是刑警寧澤,帶...
    沈念sama閱讀 36,185評論 5 350
  • 正文 年R本政府宣布楣颠,位于F島的核電站尽纽,受9級特大地震影響,放射性物質發(fā)生泄漏童漩。R本人自食惡果不足惜弄贿,卻給世界環(huán)境...
    茶點故事閱讀 41,873評論 3 333
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望矫膨。 院中可真熱鬧差凹,春花似錦、人聲如沸侧馅。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,357評論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽馁痴。三九已至谊娇,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間罗晕,已是汗流浹背济欢。 一陣腳步聲響...
    開封第一講書人閱讀 33,466評論 1 272
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留小渊,地道東北人法褥。 一個月前我還...
    沈念sama閱讀 48,921評論 3 376
  • 正文 我出身青樓,卻偏偏與公主長得像酬屉,于是被迫代替她去往敵國和親半等。 傳聞我的和親對象是個殘疾皇子揍愁,可洞房花燭夜當晚...
    茶點故事閱讀 45,515評論 2 359