CSS中的双冒号(::)代表什么?

148

在CSS中,双冒号(::)表示什么意思?

例如:

input[type=text]::-ms-clear { display: none; }
3个回答

140

这意味着伪元素选择器。这意味着在正常的DOM中右侧的元素并不存在,但可以被选择。

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

来源

最初它只有一个冒号,但为了区分它与伪类(如:hover, :first-child, :not等)而进行了更改。对于beforeafter伪元素最好使用:,因为单冒号更好地支持浏览器,尤其是早期的IE版本。


33
::操作符表示您正在选择一个伪元素,它并不存在于实际的元素中,但仍然可以被选中用于样式设计。
例如,其中包括几个供应商特定的实现,如您提供的-ms-clear示例,大多数浏览器还具有伪元素来设计滚动条和其他本地UI元素,但也有很多预定义的伪元素可供参考,出于实际原因,例如first-linefirst-letter:before: after伪元素甚至允许您使用CSS将实际内容插入页面,使用content规则。

13
CSS3 改变了伪元素选择的方式,因为 W3C 希望将像 a:visited 这样的伪类和像 p::first-line 这样的伪元素区分开来。请参见高级 CSS 选择器

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接