有什么区别:after和:: after?

时间:2014-02-10 12:16:20

标签: html css html5 css3

它说的不同之处在于:之后是CSS2,而:: after是CSS3。还有更重要的差异吗?

(我试过谷歌搜索,但冒号似乎放弃了搜索)

3 个答案:

答案 0 :(得分:16)

伪元素在CSS2中用单个冒号表示,但在CSS3 中已经改变,以便在伪类和伪元素之间建立区别“。出于兼容性原因,仍然允许在CSS 1和CSS2中定义的伪元素使用单个冒号。

CSS2

  

5.12.3:before和:after伪元素

     

'before'和':after'伪元素可用于在元素内容之前或之后插入生成的内容。

CSS3

  

7。伪元素

     

[...]

     

伪元素由两个冒号(::)组成,后跟伪元素的名称。

     

当前文档引入了此::符号,以便在伪类和伪元素之间建立区别。 为了与现有样式表兼容,用户代理还必须接受CSS级别1和2中引入的伪元素的先前单冒号表示法(即:first-line,:first-letter,:before and:after )。本规范中引入的新伪元素不允许这种兼容性。

答案 1 :(得分:4)

::after在某些旧浏览器中不起作用(我认为IE8是唯一相关的浏览器)

一般情况下,应该使用::after,但使用:after兼容性没有任何害处,只要您了解它是伪造的元素即可,而非psuedo-

答案 2 :(得分:0)

相反:: ::在IE8上的WORKS之后,while:之后不会这样做。