例如,假设我有这个 HTML:
<ul id="nav">
<li>one</li>
<li id="my_item">two</li>
<li>three</li>
<li>four</li>
</ul>
然后是 CSS:
#nav li {
margin-bottom:10px;
}
#nav #my_item {
margin-bottom:30px;
}
为什么我不能只使用#my_item
最后一个选择器?
例如,假设我有这个 HTML:
<ul id="nav">
<li>one</li>
<li id="my_item">two</li>
<li>three</li>
<li>four</li>
</ul>
然后是 CSS:
#nav li {
margin-bottom:10px;
}
#nav #my_item {
margin-bottom:30px;
}
为什么我不能只使用#my_item
最后一个选择器?
因为 CSS 使用一个称为特异性的概念来确定哪些规则适用于哪些元素。
在检查哪个规则优先时,请在此处查看列表并在第一个适用的规则上停止:
因为特异性:第一条规则的特异性为 101,而#my_item
只有特异性 100。使用!important
关键字或(如您所做的那样)增加您要使用的选择器的特异性。如果两条规则具有相同的特异性,则“最新”的一条获胜。
自从您问“为什么我不能将#my_item 用于最后一个选择器?” 并且您已经从专家那里得到了答案(关于特异性),但您也可以按照以下方式进行操作
#my_item {
margin-bottom:30px !important;
}
演示。