最近我遇到* *
了CSS。
站点参考-站点链接。
对于 CSS 样式表中的单一*
用法,Internet 和 Stack Overflow 充斥着示例,但我不确定* *
在 CSS 中使用两个符号。
我用谷歌搜索了它,但找不到任何相关信息,因为一个*
选择所有元素,但我不确定该网站为什么使用它两次。这缺少什么,为什么要使用这个hack(如果它是hack)?
就像其他任何时候你一个接一个地放置两个选择器(例如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;
}
这会将边距样式应用于 body 的所有子元素。同样的方法,
* * {
margin: 0;
}
适用margin: 0
于*
的子元素。简而言之,它适用margin: 0
于几乎所有元素。
一般来说,一个*
就够了。不需要两个* *
。
这将选择嵌套在另一个元素中的所有元素,其方式与div a
选择<a>
嵌套在元素中某处的所有元素几乎相同<div>
。