:before和::before的区别

在CSS中,经常会发现出现:before 和::before(或者是:after以及::after)等相关的伪类样式。但:before与::before究竟有什么区别呢?查阅了好多资料,也在网上搜索了不上的信息。最终总结出来,单冒号(:)用于CSS3伪类,双冒号(::)用于CSS3伪类。

W3C关于CSS3选择器的规范中有一段描述:

伪元素由双冒号和伪元素名称组成。双冒号是在当前规范中引入的,用于区分伪类和伪元素。不过浏览器需要同时支持旧的已经存在的伪元素写法,比如:first-line、:first-letter、:before、:after等,而新的在CSS3中引入的伪元素则不允许再支持旧的单冒号的写法。

那么现在就基本上可以明显的看出 对于CSS2之前已有的伪元素,比如:before,单冒号和双冒号的写法::before作用是一样的所以,如果你的网站只需要兼容webkit、firefox、opera等浏览器,建议对于伪元素采用双冒号的写法,如果不得不兼容IE浏览器,还是用CSS2的单冒号写法比较安全。

猜你喜欢

转载自zhaoxu1204.iteye.com/blog/2264911