* * CSS选择器有什么作用?

时间:2013-03-25 04:52:52

标签: html css css-selectors

最近,我在CSS中遇到* *

网站参考 - Site Link

对于CSS样式表中的单个*用法,Internet和Stack Overflow充斥着示例,但我不确定在CSS中使用两个* *符号。

我用谷歌搜索,但无法找到任何相关信息,因为单*选择所有元素,但我不确定为什么该网站使用了两次。这个缺失的部分是什么,为什么要使用这个黑客(如果它是黑客)?

5 个答案:

答案 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:

What does the * * CSS selector do?

演示: http://jsfiddle.net/l2aelba/sFSad/34/

答案 2 :(得分:33)

* *匹配除顶级元素之外的所有内容,例如html

答案 3 :(得分:11)

*表示将给定样式应用于所有元素。

* *表示将给定样式应用于所有元素的子元素。 例如:

body > * {
  margin: 0;
}

这会将边距样式应用于body的所有子元素。同样的,

* * {
  margin: 0;
}

margin: 0应用于*的子元素。简而言之,它将margin: 0应用于几乎每个元素。

通常,一个*就足够了。不需要两个* *

答案 4 :(得分:7)

选择嵌套在另一个元素中的所有元素的方式大致相同div a将选择嵌套在<a>元素内的所有<div>个元素。