Bho*_*yar 6 css css-selectors pseudo-class css3 pseudo-element
有一堆伪元素和类:
伪元素:
:: after,:: before,:: first-letter,:: first-line,:: selection,:: backdrop
伪类:
:active,:checked,:default,:dir(),: disabled,:empty,:enabled,:first,:first-child,:first-of-type,:fullscreen,:focus,:hover,:indeterminate, :in-range,:invalid,:lang(),:last-child,:last-of-type,:left,:link,:not(),:nth-child(),:nth-last-child( ),:nth-last-of-type(),:nth-of-type(),: only-child,:only-of-type,:optional,:out-of-range,:read-only,: read-write,:required,:right,:root,:scope,:target,:valid,:visited
还有其他像:: - webkit-input-placeholder,:: - moz-placeholder等等.我不知道它们是什么元素.但我认为它们是伪元素,因为它有双冒号.
有一个星号选择器*来选择DOM-Tree内的所有元素.
现在,我很想知道为什么没有单个选择器来选择所有伪元素和DOM-Tree之外的伪类,即使在css3或css4中也是如此?
*pseudo{
color: red;
}
Run Code Online (Sandbox Code Playgroud)
*选择任何元素,无论其性质或状态如何.通过这种方式,它已经覆盖了所有伪类,只有零特异性.
例如,*将不管匹配任何元素无论是:first-child,:last-child或两者(其本身可使用任何表达:only-child或:first-child:last-child).它也将匹配任何链路是否是未访问过(:link)或访问(:visited),以及它是否匹配一个或多个的:hover/ :active/ :focus.
如果你正在寻找一种方法来覆盖任何和所有CSS规则与给定元素的伪类(这在动态伪类的情况下很有用,例如链接的那个),唯一的方法是使用ID选择器,内联样式属性或!important.
*与伪元素不匹配,因为它是一个简单的选择器,而一个简单的选择器只匹配实际的元素.有关详细说明,请参阅我对此问题的回答.
没有用于匹配所有伪元素的选择器的可能原因是因为具有一个伪元素没有意义,因为不同的伪元素的工作方式不同,并且对于哪些CSS属性可以应用于它们具有不同的限制.例如,content并且display不适用于::first-letter,::first-line或::selection.但是通用选择器的存在是因为元素本身并没有定义适用的CSS属性(通常不是这样); 就CSS而言,每个元素或多或少都相等.
| 归档时间: |
|
| 查看次数: |
1159 次 |
| 最近记录: |