CSS中的双冒号(::)意味着什么?

时间:2013-05-23 01:04:31

标签: css

双重冒号(::)在CSS中意味着什么?

例如:

input[type=text]::-ms-clear { display: none; }

3 个答案:

答案 0 :(得分:93)

这意味着伪元素选择器。这意味着右边的元素在普通DOM中不存在,但可以选择。

  

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

Source

它最初只是一个冒号,但更改为将其与伪类区分开来(如:hover:first-child:not等。最好将:用于beforeafter伪元素,因为单冒号具有更好的浏览器支持,即在早期的IE版本中。

答案 1 :(得分:24)

::运算符表示您正在选择一个伪元素,一个实际上不作为元素存在但仍可以作为样式的目标。

此示例包括几个特定于供应商的实现,例如您提供的-ms-clear示例,大多数浏览器还具有样式滚动条和其他原生UI元素的伪元素,但也有很多{{3可以出于实际原因引用它,例如first-linefirst-letter

:before:after伪元素甚至允许您使用带有content规则的CSS将实际内容插入到页面中。

答案 2 :(得分:9)

CSS3改变了伪元素的选择方式,因为W3C希望将a:visited等伪类与p::first-line之类的伪元素区分开来。请参阅Advanced CSS Selectors