最近忽然被別人問起css單冒號和雙冒號有什麼區別,答曰:「不知道」。
雖然還在填坑中,但做爲一個跨過了初級的FEer,感受着實汗顏,恰好今天下午在搜別的問題的時候,忽然看到一個對比,嗯,我以爲寫得還不錯,暫時沒有本身總結,因此先轉了。css
一、僞類與僞元素
css3
CSS僞元素:用於將特殊的效果添加到某些選擇器。僞元素表明了某個元素的子元素,這個子元素雖然在邏輯上存在,但卻並不實際存在於文檔樹中。
瀏覽器
僞類的效果能夠經過添加一個實際的類來達到,而僞元素的效果則須要經過添加一個實際的元素才能達到,這也是爲何他們一個稱爲僞類,一個稱爲僞元素的緣由。
CSS3爲了區分僞類和僞元素,已經明確規定了僞類用一個冒號來表示,而僞元素則用兩個冒號來表示。但由於兼容性的問題,因此如今大部分仍是統一的單冒號,可是拋開兼容性的問題,咱們在書寫時應該儘量養成好習慣,區分二者。
單冒號(:)用於css3僞類,雙冒號(::)用於CSS3僞元素。僞元素由雙冒號和僞元素名稱組成。不過瀏覽器須要同時支持舊的已經存在的僞元素寫法,好比:first-line、:first-letter、:before、:after等,而新的在CSS3中引入的僞元素則不容許再支持舊的單冒號的寫法。blog
二、CSS3新增僞類
文檔