2012-08-02 31 views
-1

我经常看到web开发人员使用以下命令:*,html选择器是多余的?

*, html { 
    margin: 0; 
    padding:0; 
} 

不过,我本来以为会是多余的,因为*比赛的所有元素。我在这里错过了什么吗?

+1

我从来没有见过web开发人员使用,直到永远。 – BoltClock 2012-08-02 22:59:54

+0

我在过去使用过*,但它选择了所有元素。那么为什么你还需要选择html? – Undefined 2012-08-02 23:01:00

+2

您是否想过[star html hack](http://en.wikipedia.org/wiki/CSS_filter#Star_HTML_hack),或许? – 2012-08-02 23:03:26

回答

4

如果您需要更多的特异性从覆盖默认的样式,以保护上html选择也许如改变字体样式的情况下,它是不是多余的。

然而,*将匹配html标签。

你可以阅读更多关于CSS Specificity这里。

编辑:

例的情况下使用:

,如果你有一个样式默认设置你包括在每一页上重写浏览器的默认设置,其中包括这样的:

*,html { 
    margin: 0; 
    padding: 0; 
} 

后来不同的css文件恰好有一个不同的情况下,相同的选择:

* { 
    margin: 10px; 
    padding: 0; 
} 

然后你html将不受影响,因为*有首发,这意味着该规则由以前的CSS规则推翻无特异性。

我添加的字体改变例子,这是否对body标签说明概念 - http://jsfiddle.net/M89Tn/1/

+0

没有人使用'*,html'摆在首位... – thirtydot 2012-08-02 23:16:47

+0

@thirtydot /同意= P仅仅展示它是如何在技术上是不是多余的事。 – 2012-08-02 23:17:39