我经常看到Web开发人员使用以下内容:
*, html {
margin: 0;
padding:0;
}
但我认为这将是多余的,因为*
匹配所有元素。我在这里错过了什么吗?
答案 0 :(得分:4)
如果您需要更具体的特性来保护html
选择器上的覆盖默认样式(例如在更改字体样式的情况下),那么这并不是多余的。
但是,*
会匹配html
代码。
您可以在此处详细了解CSS Specificity。
修改强>
案例用法示例:
如果您在每个页面上都包含一组默认样式,则覆盖包含以下内容的浏览器默认值:
*,html {
margin: 0;
padding: 0;
}
然后一个不同的css文件恰好具有相同的选择器用于不同的情况:
* {
margin: 10px;
padding: 0;
}
然后您的html
将不受影响,因为*
对初学者没有特异性,这意味着规则被之前的css规则推翻。
我添加了一个字体更改示例,在body
标记上执行此操作以演示概念 - http://jsfiddle.net/M89Tn/1/