* * CSSselect器是做什么的?
最近我遇到* *
在CSS中 。
网站参考 – 网站链接 。
对于CSS样式表中的一个单独的*
用法,Internet和Stack Overflow充斥着示例,但我不确定在CSS中使用两个* *
符号。
我GOOGLE了,但无法find任何有关的信息,作为一个*
select所有的元素,但我不知道为什么该网站使用了两次。 这个缺失的部分是什么,为什么这个黑客使用(如果它是一个黑客)?
就像其他任何时候你一个接一个地select两个select器(例如li a
)一样,你会得到后代组合器。 所以* *
是任何元素是任何其他元素的后代 – 换句话说,任何不是整个文档的根元素的元素。
只是一个小例子:
尝试添加到您的网站上:
* { outline: 2px dotted red; } * * { outline: 2px dotted green; } * * * { outline: 2px dotted orange; } * * * * { outline: 2px dotted blue; } * * * * * { outline: 1px solid red; } * * * * * * { outline: 1px solid green; } * * * * * * * { outline: 1px solid orange; } * * * * * * * * { outline: 1px solid blue; }
演示: http : //jsfiddle.net/l2aelba/sFSad/
例2:
演示: http : //jsfiddle.net/l2aelba/sFSad/34/
* *
匹配除顶层元素之外的所有内容,例如html
。
*
表示对所有元素应用给定的样式。
* *
表示将给定的样式应用于所有元素的子元素。 例:
body > * { margin: 0; }
这将margin属性应用于body的所有子元素。 同样的方式,
* * { margin: 0; }
应用margin: 0
到*
的子元素。 简而言之,它将margin: 0
应用于几乎所有的元素。
一般来说,一个就足够了。 不需要两个* *
。
select所有嵌套在另一个元素中的元素,就像div a
select嵌套在<div>
元素内的所有<a>
元素一样。