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

swa*_*esh 97 html css css-selectors

最近我遇到* *CSS.

站点参考 - 站点链接.

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

我用谷歌搜索,但无法找到任何相关的信息,因为单个*选择所有元素,但我不知道为什么该网站使用它两次.缺少什么是这个,为什么这个黑客被使用(如果它是一个黑客)?

hob*_*bbs 138

就像任何其他时间你一个接一个地放置两个选择器(例如li a),你得到了后代组合器.所以,* *是任何其他元素的后代的任何元素-换句话说,任何元素不是整个文档的根元素.

  • 请注意,以`*html`的方式,`**`*将*匹配IE6中的html元素. (10认同)
  • @swapnesh它看起来像浏览器黑客.有一个`*{font-size:XXX}`规则和一个`**{font-size:YYY}`规则.其中一个适用于大多数浏览器,另一个适用于具有某个错误的浏览器,尽管我没有耐心去弄清楚细节.它类似于曾经常用于检测旧IE的`*html` hack. (2认同)

l2a*_*lba 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; }
Run Code Online (Sandbox Code Playgroud)

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


例2:

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

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

  • 这不是严格的答案,但多么可爱的可视化! (7认同)

Fra*_*bot 33

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


小智 11

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

* *表示将给定样式应用于所有元素的子元素.例:

body > * {
  margin: 0;
}
Run Code Online (Sandbox Code Playgroud)

这会将边距样式应用于正文的所有子元素.同样的方式,

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

适用margin: 0*儿童元素.简而言之,它margin: 0几乎适用于所有元素.

一般来说,一个*就足够了.没有必要两个* *.

  • `**`将样式应用于*descendant*元素,而不是子元素.子元素在您的示例中将是`>`,而不是空格.后代和孩子不是一回事. (3认同)
  • thx为解释+1 ..甚至我不确定你在最后一行中提到的内容"一般来说,*就够了.不需要**.我猜." (2认同)

Mik*_*ant 7

选择嵌套在另一个元素中的div a所有<a>元素的方式大致相同,将选择嵌套在<div>元素内部的所有元素.