CSS中的start(*)是什么意思

时间:2014-02-21 04:54:05

标签: css

我知道像*border-top-width:0;这样的样式名称之前的*前缀是IE浏览器的黑客攻击。但是,我无法理解这一点。当*用作后缀时,如下所示是什么意思??

.ancestors *
{ 
display: block;
border: 2px solid lightgrey;
color: lightgrey;
padding: 5px;
margin: 15px;
}

我观察到当存在星标时,样式将在Chrome浏览器中应用,并且当删除星标时,样式不会在Chrome浏览器中应用。

3 个答案:

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

与许多其他地方一样,星号是一个选择每个元素的通配符。在类名之后使用(如在您的示例中),作为祖先类的后代的每个元素都将应用样式。