有同窗在使用CSS僞元素時使用 :: (雙冒號)產生疑問。 進而對:(單冒號)和::(雙冒號)的區別產生疑問。css
而咱們在使用僞類僞元素的時候經常都是使用單冒號。css3
那麼咱們就來看看怎麼回事吧。瀏覽器
之會有疑問,其實這是由於CSS2未遵循W3C規範,僞類和僞元素統一使用單冒號表示。學習
而許多人初學時養成了全都使用單冒號的習慣。spa
在以後的CSS3版本時候規定了僞類使用單冒號,而僞元素則使用雙冒號表示的標準code
那麼順便介紹一下僞類和僞元素的是什麼吧it
CSS 僞類 是添加到選擇器的關鍵字,指定要選擇的元素的特殊狀態。例如::hover
、:visited
等ast
也有咱們常見的僞類選擇器:nth-child()
、last-child
class
而僞元素是一個附加至選擇器末的關鍵詞,容許你對被選擇元素的特定部分修改樣式。 咱們常見的包括::before
、::after
,相信許多同窗在學習清除浮動時都會使用到,但大多數都用的單冒號渲染
// 僞類 表明鼠標通過時候,顏色變爲淺灰
.demo:hover {
color: #efefef;
}
複製代碼
// 僞元素 表示在P標籤內容渲染前先填充一個*
p:before { // css2寫法 非標準
content: '*'
}
p::before { // css3寫法 標準
content: '*'
}
複製代碼
p:first-child::before { // 選擇第一個P標籤病在內容渲染前先填充一個*
content: '*'
}
複製代碼
因爲CSS2的不規範,因此瀏覽器都作了單冒號和雙冒號的兼容。因此目前絕大多數的瀏覽器都同時支持使用這兩種方式來表示僞元素。
IE8不兼容(小聲BB)