我不知道为什么我的样式表不覆盖normalize.css
的边距值。
在html中,样式表链接的顺序是正确的:
<link rel="stylesheet" href="css/normalize.css">
<link rel="stylesheet" href="css/2may.css">
在 normalize.css 中, h1 的边距设置如下:
h1 {
font-size: 2em;
margin: 0.67em 0;
}
使用我的样式表,我试图覆盖它:
*{
box-sizing: border-box;
color: #ddd;
padding: 0;
border: 0;
margin: 0;
text-decoration: none;
}
答案 0 :(得分:2)
因为h1
比*
您应该阅读this
示例:
* /* a=0 b=0 c=0 -> specificity = 0 */
LI /* a=0 b=0 c=1 -> specificity = 1 */
UL LI /* a=0 b=0 c=2 -> specificity = 2 */
UL OL+LI /* a=0 b=0 c=3 -> specificity = 3 */
H1 + *[REL=up] /* a=0 b=1 c=1 -> specificity = 11 */
UL OL LI.red /* a=0 b=1 c=3 -> specificity = 13 */
LI.red.level /* a=0 b=2 c=1 -> specificity = 21 */
#x34y /* a=1 b=0 c=0 -> specificity = 100 */
#s12:not(FOO) /* a=1 b=0 c=1 -> specificity = 101 */
在您的情况下,只需添加:
margin: 0;
到你的h1声明。
答案 1 :(得分:1)
如果要覆盖h1
中的normalize.css
样式,您可能希望在CSS中定位相同的选择器:
h1 {
box-sizing: border-box;
color: #ddd;
padding: 0;
border: 0;
margin: 0; /* this is the new one */
text-decoration: none;
}
答案 2 :(得分:1)
更具体的规则会覆盖*
等常规规则。这就是为什么normalize.css会覆盖那个选择器。
例如,如果我有这两个选择器,则应用更具体的选择器,在这种情况下,它是.foo#someId
:
.foo#someId {
color: red;
}
.foo { color: blue; }
如果我有两个相同的,则应用第一个:
.foo{ color: red } //text will be red
.foo{ color: blue }
以下是规范的链接以获取更多信息:
http://www.w3.org/TR/2011/REC-CSS2-20110607/cascade.html#cascade