Asterisk(*)在CSS选择器中做了什么?

Jas*_*vis 96 css css-selectors

我发现了这个CSS代码,我运行它来查看它的作用,它概述了页面上的每个元素,

有人可以解释一下Asterisk*在CSS中的作用吗?

<style>
* { 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 }
</style>
Run Code Online (Sandbox Code Playgroud)

Sov*_*iut 94

它是一个通配符,这意味着它将选择DOM部分内的所有元素.

例如,如果我想将余量应用于整个页面上的每个元素,您可以使用:

* {
    margin: 10px;
}
Run Code Online (Sandbox Code Playgroud)

您也可以在子选择中使用它,例如,以下内容将为段落标记中的所有元素添加边距:

p * {
    margin: 10px;
}
Run Code Online (Sandbox Code Playgroud)

你的例子是做一些css技巧,将连续的边框和边距应用于元素,为它们提供多个彩色边框.例如,白色边框被黑色边框包围.

  • 没有"优势",只是如何选择`p`标签内的所有后代元素.因此,如果你的段落中有一个`span`,`b`,`strong`,`img`等,它会选择那些并将样式应用到它们中. (6认同)

Tom*_*Tom 29

您引用的CSS对于调试页面布局问题的Web设计器非常有用.我经常把它暂时放到页面中,所以我可以看到所有页面元素的大小并跟踪,例如,有太多填充的那个,它会推动其他元素不合适.

仅使用第一行就可以完成相同的技巧,但定义多个轮廓的优点是,您可以通过边框颜色获得嵌套页面元素层次结构的可视线索.

  • 虽然现在浏览器内置的浏览器更有效,不是吗?或者使用萤火虫. (2认同)

Mik*_*cic 6

*就像在大多数其他情况下一样,充当通配符。

如果你这样做:

*{
  margin: 0px;
  padding: 0px;
  border: 1px solid red;
}
Run Code Online (Sandbox Code Playgroud)

然后所有HTML 元素都将具有这些样式。