css3 - css的偽類作用?
問題描述
如圖 這是我在刷面試題得時候 碰見的 想問一下大神 有什么具體的區別?反正我寫的時候 是沒有發現 至于作用我還是知道的
問題解答
回答1:單冒號(:)用于CSS3偽類,雙冒號(::)用于CSS3偽元素。W3C關于CSS3選擇器的規范中有一段描述:
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.
簡單翻譯一下,大意就是,偽元素由雙冒號和偽元素名稱組成。雙冒號是在當前規范中引入的,用于區分偽類和偽元素。但是偽類兼容現存樣式,瀏覽器需要同時支持舊的偽類,比如:first-line、:first-letter、:before、:after等。
那么現在就可以完整的回答標題中的問題了,對于CSS2之前已有的偽元素,比如:before,單冒號和雙冒號的寫法::before作用是一樣的。
所以,如果你的網站只需要兼容webkit、firefox、opera等瀏覽器,建議對于偽元素采用雙冒號的寫法,如果不得不兼容IE瀏覽器,還是用CSS2的單冒號寫法比較安全。
回答2:這種問題百度就知道了
參見:
偽元素 https://developer.mozilla.org/zh-CN/docs/Web/CSS/Pseudo-elements
偽類 https://developer.mozilla.org/zh-CN/docs/Web/CSS/Pseudo-classes
相關文章:
1. javascript - jquery怎么給select option一個點擊時觸發的事件,如圖 如果選擇自定義觸發一個時間?2. javascript - Vue的計算屬性底層依賴原理是怎么樣?3. css3 - animation屬性,safari瀏覽器不支持相關效果4. 網頁爬蟲 - python爬蟲用BeautifulSoup爬取<s>元素并寫入字典,但某些div下沒有這一元素,導致自動寫入下一條,如何解決?5. 百度地圖api - Android百度地圖SDK,MapView上層按鈕可見卻不可觸,怎么解決?6. mysql 獲取時間函數unix_timestamp 問題?7. html5 - canvas中的mousedrag事件,為什么鼠標拖出canvas,然后再次移入canvas,drag事件還觸發8. 新入手layuiadmin,部署到tp中。想用php自已寫一個后臺管理系統。9. javascript - es6擴展運算符...的問題10. HTML5不支持frameset一般怎么解決?
