97

最近我遇到* *CSS

站点参考-站点链接

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

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

4

5 回答 5

138

就像其他任何时候你一个接一个地放置两个选择器(例如li a)一样,你会得到后代组合器。* *任何其他元素的后代元素也是如此——换句话说,任何不是整个文档的根元素的元素。

于 2013-03-25T04:54:44.350 回答
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:

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

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

于 2013-03-25T11:54:44.683 回答
33

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

于 2013-03-25T04:54:26.843 回答
11

*意味着将给定的样式应用于所有元素。

* *意味着将给定的样式应用于元素的所有子元素。例子:

body > * {
  margin: 0;
}

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

* * {
  margin: 0;
}

适用margin: 0*的子元素。简而言之,它适用margin: 0于几乎所有元素。

一般来说,一个*就够了。不需要两个* *

于 2013-03-25T05:00:14.423 回答
7

这将选择嵌套在另一个元素中的所有元素,其方式与div a选择<a>嵌套在元素中某处的所有元素几乎相同<div>

于 2013-03-25T04:55:14.570 回答