CSS和::之间的区别

5 css css3

CSS和::之间究竟有什么区别?
例如,我看到CSS代码如下:

.example:before{
   content:'just one';
}
Run Code Online (Sandbox Code Playgroud)

.example2::before{
   content:'here two';
}
Run Code Online (Sandbox Code Playgroud)

有什么不同?什么是最佳做法?

Mis*_*pic 13

伪类

引入伪类概念以允许基于位于文档树之外的信息或者不能使用其他简单选择器表达的信息进行选择.

伪类总是由"冒号"(:)后跟伪类的名称,并且可选地由括号之间的值组成.

参考:http://www.w3.org/TR/css3-selectors/#pseudo-classes

伪元素

伪元素创建关于文档树的抽象,超出文档语言指定的抽象.例如,文档语言不提供访问元素内容的第一个字母或第一行的机制.伪元素允许作者参考这个否则无法访问的信息.伪元素还可以为作者提供引用源文档中不存在的内容的方式(例如,:: before和:: after伪元素允许访问生成的内容).

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

参考:http://www.w3.org/TR/css3-selectors/#pseudo-elements

我们通常只使用一个冒号来表示所有内容,但现在最好的做法是遵循W3C的指导原则,但我会添加一个警告,确保您支持的浏览器在开始批量更改之前理解语法.你的样式表.

  • 如果您想知道 - 您需要担心的唯一浏览器是IE8.没有其他浏览器支持`:before`而不支持`:: before`,但IE8在某些人口统计数据中仍然是一个大问题. (4认同)