:before和::before的区别
生活随笔
收集整理的這篇文章主要介紹了
:before和::before的区别
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
在一次項目中,有一次要用到::selection偽元素,然后開發同學問我,CSS中一個冒號和兩個冒號有神馬區別?
這好像真的是個問題,或許很多前端同學對此都有疑惑,查了些資料,證實了下兩個符號的區別,簡而言之:單冒號(:)用于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等,而新的在CSS3中引入的偽元素則不允許再支持舊的單冒號的寫法。
那么現在就可以完整的回答標題中的問題了,對于CSS2之前已有的偽元素,比如:before,單冒號和雙冒號的寫法::before作用是一樣的。
所以,如果你的網站只需要兼容webkit、firefox、opera等瀏覽器,建議對于偽元素采用雙冒號的寫法,如果不得不兼容IE瀏覽器,還是用CSS2的單冒號寫法比較安全。
轉載于:https://www.cnblogs.com/anjey/archive/2012/08/14/2638051.html
總結
以上是生活随笔為你收集整理的:before和::before的区别的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 上海欢乐谷能量风暴刺激吗
- 下一篇: 多年没有管理的技术博客了,即日起开始管理