【发布时间】:2018-05-22 11:35:41
【问题描述】:
我认为我对特异性和 !important 的工作原理有错误的理解。
考虑下面的 HTML:
<head>
<link href="css/style.css" rel="stylesheet">
<link href="css/style1.css" rel="stylesheet">
</head>
<body>
<div class = "outer">
<div class = "inner1">
<div class = "inner2">
<p>Voluptate labore cupidatat an enim quamquam ut anim malis, varias id sed veniam
quibusdam, singulis aliqua ut singulis domesticarum, id aliqua illum o officia,
et ab domesticarum, irure e excepteur o eram nam appellat coniunctione do
commodo..</p>
</div>
</div>
</div>
样式.CSS
.outer .inner1 {
color:green !important;
}
样式1.CSS
.outer .inner1 .inner2 {
color:red ;
}
我的理解是 style.css 中的规则永远不会被覆盖(因为它有一个重要的标签),即使 syle1.css 中的规则更具体。 我在想规则是在 HTML 文件中遇到的时候应用的(首先是 style.css,然后是 style1.css),只有当规则更具体时,元素的特定属性的值才会被覆盖(重要标签阻止无论后续规则多么具体,这都是最重要的)。这显然不是它的工作原理。有人可以告诉我 !important 和 specificity 是如何工作的,你什么时候使用 !important ?
【问题讨论】:
-
Specifity 会覆盖继承的规则,即使使用 !important。
标签: css