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

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

例如:

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

这意味着伪元素select器。 这意味着右边的元素不存在于正常的DOM中,但可以select。

伪元素由两个冒号(::)组成,后面跟着伪元素的名字。

资源

它最初只是一个单独的冒号,但被改为区分伪类 (如:hover:first-child:not不等)。 因为单个冒号有更好的浏览器支持,所以最好after伪元素beforeafter使用:在较早的IE版本中。

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

这个例子包括几个供应商特定的实现,例如你提供的-ms-clear样例,大多数浏览器也有伪元素来设置滚动条和其他本地UI元素的样式,但是也有很多预定义的伪元素可以被引用出于实际的原因,如first-linefirst-letter

:before:after伪元素甚至允许你使用带content规则的CSS在页面中插入实际的content

CSS3改变了伪元素的select方式,因为W3C想要区分伪类,比如p::first-line等伪元素。 请参阅高级CSSselect器 。