135

::CSS中的双冒号 ( ) 是什么意思?

例如:

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

3 回答 3

128

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

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

资源

它最初只是一个冒号,但为了区别于伪类(如:hover:first-child:not)而进行了更改。最好使用:forbeforeafter伪元素,因为单冒号有更好的浏览器支持,即在早期的 IE 版本中。

于 2013-05-23T01:05:26.770 回答
32

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

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

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

于 2013-05-23T01:11:32.160 回答
13

CSS3 改变了选择伪元素的方式,因为 W3C 想要区分伪类a:visitedp::first-line. 请参阅高级 CSS 选择器

于 2013-05-23T01:44:33.983 回答