我知道像*border-top-width:0;
这样的样式名称之前的*前缀是IE浏览器的黑客攻击。但是,我无法理解这一点。当*用作后缀时,如下所示是什么意思??
.ancestors *
{
display: block;
border: 2px solid lightgrey;
color: lightgrey;
padding: 5px;
margin: 15px;
}
我观察到当存在星标时,样式将在Chrome浏览器中应用,并且当删除星标时,样式不会在Chrome浏览器中应用。
答案 0 :(得分:4)
CSS文件中的*
(星号)符号,在类名或任何其他标识符后使用时,将选择该元素中的所有后代/子项。
例如,如果我们有这个HTML文档:
<div class="container">
<div class="square">
<div class="square">
</div>
<div class="container">
<div class="circle">
<div class="circle">
</div>
要仅选择.container
div,可以使用以下CSS:
.container
{
/*Styling*/
}
要仅选择.square
中的.containers
,请使用:
.container .square
{
/*Styling for squares*/
}
要选择.containers
内的所有元素,请使用:
.container *
{
/*Styling for squares, circles, rectangles and everything else you can think off*/
}
有关详细信息,请参阅通用选择器上的W3C参考:
http://www.w3.org/TR/selectors/#universal-selector
还有Mozilla Dev Network:
https://developer.mozilla.org/en-US/docs/Web/CSS/Universal_selectors
答案 1 :(得分:1)
当星号(*)放在班级名称之后,它会选择所有孩子。
来自MDN:
Asterisk(*)是CSS的通用选择器。它匹配单个 任何类型的元素。用简单的选择器省略星号 同样的效果。例如,考虑* .warning和.warning 相等。
答案 2 :(得分:1)
与许多其他地方一样,星号是一个选择每个元素的通配符。在类名之后使用(如在您的示例中),作为祖先类的后代的每个元素都将应用样式。