最近,我在CSS中遇到* *
。
网站参考 - Site Link。
对于CSS样式表中的单个*
用法,Internet和Stack Overflow充斥着示例,但我不确定在CSS中使用两个* *
符号。
我用谷歌搜索,但无法找到任何相关信息,因为单*
选择所有元素,但我不确定为什么该网站使用了两次。这个缺失的部分是什么,为什么要使用这个黑客(如果它是黑客)?
答案 0 :(得分:138)
就像任何其他时间一个接一个地放置两个选择器(例如li a
)一样,你得到了后代组合子。所以* *
是任何其他元素的后代元素 - 换句话说,不是整个文档的根元素的任何元素。
答案 1 :(得分:80)
只是一个小例子:
尝试在您的网站上添加此内容:
* { 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:
答案 2 :(得分:33)
* *
匹配除顶级元素之外的所有内容,例如html
。
答案 3 :(得分:11)
*
表示将给定样式应用于所有元素。
* *
表示将给定样式应用于所有元素的子元素。
例如:
body > * {
margin: 0;
}
这会将边距样式应用于body的所有子元素。同样的,
* * {
margin: 0;
}
将margin: 0
应用于*
的子元素。简而言之,它将margin: 0
应用于几乎每个元素。
通常,一个*
就足够了。不需要两个* *
。
答案 4 :(得分:7)
选择嵌套在另一个元素中的所有元素的方式大致相同div a
将选择嵌套在<a>
元素内的所有<div>
个元素。