詳解 CSS 屬性 - 偽類和偽元素的區(qū)別

CSS偽類用于向某些選擇器添加特殊的效果。

CSS偽元素用于將特殊的效果添加到某些選擇器江掩。

可以明確兩點,第一兩者都與選擇器相關(guān)乘瓤,第二就是添加一些“特殊”的效果环形。這里特殊指的是兩者描述了其他css無法描述的東西。

偽類種類

偽元素種類

區(qū)別

這里用偽類:first-child和偽元素:first-letter來進行比較衙傀。

p>i:first-child {color: red}

<p>

? ? ?<i >first</i>

? ? ?<i>second</i>

</p>

?效果 :

//偽類:first-child添加樣式到第一個子元素

如果我們不使用偽類抬吟,而希望達到上述效果,可以這樣做:

.first-child {color: red}

<p>

? ? ?<i class="first-child">first</i>

? ? ?<i>second</i>

</p>

即我們給第一個子元素添加一個類统抬,然后定義這個類的樣式拗军。那么我們接著看看偽元素:

p:first-letter {color: red}

<p>I am stephen lee.</p>

效果 :

//偽元素:first-letter添加樣式到第一個字母

那么如果我們不使用偽元素任洞,要達到上述效果,應(yīng)該怎么做呢发侵?

.first-letter {color: red}

<p><span class="first-child">I</span> ?am stephen lee.</p>

即我們給第一個字母添加一個span交掏,然后給span增加樣式。

兩者的區(qū)別已經(jīng)出來了刃鳄。那就是:

!! 偽類的效果可以通過添加一個實際的類來達到盅弛,而偽元素的效果則需要通過添加一個實際的元素才能達到,這也是為什么他們一個稱為偽類叔锐,一個稱為偽元素的原因挪鹏。!!

總結(jié)

偽元素和偽類之所以這么容易混淆,是因為他們的效果類似而且寫法相仿愉烙,但實際上css3為了區(qū)分兩者讨盒,已經(jīng)明確規(guī)定

冒號(:)用于CSS3偽類,雙冒號(::)用于CSS3偽元素步责。

偽元素由雙冒號偽元素名稱組成返顺。雙冒號是在css3規(guī)范中引入的,用于區(qū)分偽類和偽元素蔓肯。但是偽類兼容現(xiàn)存樣式遂鹊,瀏覽器需要同時支持舊的偽類,比如:first-line蔗包、:first-letter秉扑、:before、:after等调限。

對于CSS2之前已有的偽元素舟陆,比如:before,單冒號和雙冒號的寫法::before作用是一樣的耻矮。

提醒秦躯,如果你的網(wǎng)站只需要兼容webkit、firefox淘钟、opera等瀏覽器宦赠,建議對于偽元素采用雙冒號的寫法陪毡,如果不得不兼容IE瀏覽器米母,還是用CSS2的單冒號寫法比較安全。

在一次項目中毡琉,有一次要用到::selection偽元素铁瞒,然后開發(fā)同學(xué)問我,CSS中一個冒號和兩個冒號有神馬區(qū)別桅滋?

這好像真的是個問題慧耍,或許很多前端同學(xué)對此都有疑惑身辨,查了些資料,證實了下兩個符號的區(qū)別芍碧,簡而言之:單冒號(:)用于CSS3偽類煌珊,雙冒號(::)用于CSS3偽元素。

W3C關(guān)于CSS3選擇器的規(guī)范中有一段描述:

A pseudo-element is made of two colons (::) followed by the name of the pseudo-element. This :: notation is introduced by the current document in order to establish a discrimination between pseudo-classes and pseudo-elements. For compatibility with existing style sheets, user agents must also accept the previous one-colon notation for pseudo-elements introduced in CSS levels 1 and 2 (namely, :first-line, :first-letter, :before and :after). This compatibility is not allowed for the new pseudo-elements introduced in CSS level 3.

簡單翻譯一下泌豆,大意就是定庵,偽元素由雙冒號和偽元素名稱組成。雙冒號是在當(dāng)前規(guī)范中引入的踪危,用于區(qū)分偽類和偽元素蔬浙。但是偽類兼容現(xiàn)存樣式,瀏覽器需要同時支持舊的偽類贞远,比如:first-line畴博、:first-letter、:before蓝仲、:after等俱病。

那么現(xiàn)在就可以完整的回答標題中的問題了,對于CSS2之前已有的偽元素杂曲,比如:before庶艾,單冒號和雙冒號的寫法::before作用是一樣的。

所以擎勘,如果你的網(wǎng)站只需要兼容webkit咱揍、firefox、opera等瀏覽器棚饵,建議對于偽元素采用雙冒號的寫法煤裙,如果不得不兼容IE瀏覽器,還是用CSS2的單冒號寫法比較安全噪漾。

:Pseudo-classes

::Pseudo-elements

但因為兼容性的問題硼砰,所以現(xiàn)在大部分還是統(tǒng)一的單冒號,但是拋開兼容性的問題欣硼,我們在書寫時應(yīng)該盡可能養(yǎng)成好習(xí)慣题翰,區(qū)分兩者。

2017年4月18日

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末诈胜,一起剝皮案震驚了整個濱河市豹障,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌焦匈,老刑警劉巖血公,帶你破解...
    沈念sama閱讀 206,378評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異缓熟,居然都是意外死亡累魔,警方通過查閱死者的電腦和手機摔笤,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,356評論 2 382
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來垦写,“玉大人吕世,你說我怎么就攤上這事√萃叮” “怎么了寞冯?”我有些...
    開封第一講書人閱讀 152,702評論 0 342
  • 文/不壞的土叔 我叫張陵,是天一觀的道長晚伙。 經(jīng)常有香客問我吮龄,道長,這世上最難降的妖魔是什么咆疗? 我笑而不...
    開封第一講書人閱讀 55,259評論 1 279
  • 正文 為了忘掉前任漓帚,我火速辦了婚禮,結(jié)果婚禮上午磁,老公的妹妹穿的比我還像新娘尝抖。我一直安慰自己,他們只是感情好迅皇,可當(dāng)我...
    茶點故事閱讀 64,263評論 5 371
  • 文/花漫 我一把揭開白布昧辽。 她就那樣靜靜地躺著,像睡著了一般登颓。 火紅的嫁衣襯著肌膚如雪搅荞。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,036評論 1 285
  • 那天框咙,我揣著相機與錄音咕痛,去河邊找鬼。 笑死喇嘱,一個胖子當(dāng)著我的面吹牛茉贡,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播者铜,決...
    沈念sama閱讀 38,349評論 3 400
  • 文/蒼蘭香墨 我猛地睜開眼腔丧,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了作烟?” 一聲冷哼從身側(cè)響起愉粤,我...
    開封第一講書人閱讀 36,979評論 0 259
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎俗壹,沒想到半個月后科汗,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體藻烤,經(jīng)...
    沈念sama閱讀 43,469評論 1 300
  • 正文 獨居荒郊野嶺守林人離奇死亡绷雏,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 35,938評論 2 323
  • 正文 我和宋清朗相戀三年头滔,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片涎显。...
    茶點故事閱讀 38,059評論 1 333
  • 序言:一個原本活蹦亂跳的男人離奇死亡坤检,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出期吓,到底是詐尸還是另有隱情早歇,我是刑警寧澤,帶...
    沈念sama閱讀 33,703評論 4 323
  • 正文 年R本政府宣布讨勤,位于F島的核電站箭跳,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏潭千。R本人自食惡果不足惜谱姓,卻給世界環(huán)境...
    茶點故事閱讀 39,257評論 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望刨晴。 院中可真熱鬧屉来,春花似錦、人聲如沸狈癞。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,262評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽蝶桶。三九已至慨绳,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間真竖,已是汗流浹背儡蔓。 一陣腳步聲響...
    開封第一講書人閱讀 31,485評論 1 262
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留疼邀,地道東北人喂江。 一個月前我還...
    沈念sama閱讀 45,501評論 2 354
  • 正文 我出身青樓,卻偏偏與公主長得像旁振,于是被迫代替她去往敵國和親获询。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 42,792評論 2 345

推薦閱讀更多精彩內(nèi)容