最近突然被別人問起css單冒號和雙冒號有什么區別,答曰:“不知道”。
雖然還在填坑中,但作為一個跨過了初級的FEer,感覺着實汗顏,剛好今天下午在搜別的問題的時候,突然看到一個對比,嗯,我覺得寫得還不錯,暫時沒有自己總結,所以先轉了。
1、偽類與偽元素
CSS偽元素:用於將特殊的效果添加到某些選擇器。偽元素代表了某個元素的子元素,這個子元素雖然在邏輯上存在,但卻並不實際存在於文檔樹中。
偽類的效果可以通過添加一個實際的類來達到,而偽元素的效果則需要通過添加一個實際的元素才能達到,這也是為什么他們一個稱為偽類,一個稱為偽元素的原因。
CSS3為了區分偽類和偽元素,已經明確規定了偽類用一個冒號來表示,而偽元素則用兩個冒號來表示。但因為兼容性的問題,所以現在大部分還是統一的單冒號,但是拋開兼容性的問題,我們在書寫時應該盡可能養成好習慣,區分兩者。
單冒號(:)用於css3偽類,雙冒號(::)用於CSS3偽元素。偽元素由雙冒號和偽元素名稱組成。不過瀏覽器需要同時支持舊的已經存在的偽元素寫法,比如:first-line、:first-letter、:before、:after等,而新的在CSS3中引入的偽元素則不允許再支持舊的單冒號的寫法。
2、CSS3新增偽類