双重冒号(::
)在CSS中意味着什么?
例如:
input[type=text]::-ms-clear { display: none; }
答案 0 :(得分:93)
这意味着伪元素选择器。这意味着右边的元素在普通DOM中不存在,但可以选择。
伪元素由两个冒号(::)后跟伪元素的名称组成。
它最初只是一个冒号,但更改为将其与伪类区分开来(如:hover
,:first-child
,:not
等。最好将:
用于before
和after
伪元素,因为单冒号具有更好的浏览器支持,即在早期的IE版本中。
答案 1 :(得分:24)
::
运算符表示您正在选择一个伪元素,一个实际上不作为元素存在但仍可以作为样式的目标。
此示例包括几个特定于供应商的实现,例如您提供的-ms-clear
示例,大多数浏览器还具有样式滚动条和其他原生UI元素的伪元素,但也有很多{{3可以出于实际原因引用它,例如first-line
和first-letter
。
:before
和:after
伪元素甚至允许您使用带有content
规则的CSS将实际内容插入到页面中。
答案 2 :(得分:9)
CSS3改变了伪元素的选择方式,因为W3C希望将a:visited
等伪类与p::first-line
之类的伪元素区分开来。请参阅Advanced CSS Selectors。