2

这是本书给出的关于浏览器如何确定在冲突中应用哪个规则的 5 条规则中的第 2 条:

id 选择器是第二个最具体的 [在行内样式属性之后]。如果规则中有多个 id,则 id 选择器数量最多的规则获胜。

我真的不明白规则 2 在说什么——它说“如果规则中有多个 id ”(这是单数)。如果只有一个规则,怎么会有冲突或比较(“最大的规则……获胜”)?一条规则怎么会有不同数量的 id 选择器,如果只有一条规则,冲突在哪里?

有人可以彻底解释这条规则吗?感谢您的帮助,因为我正在尝试了解网页设计的基础知识

4

2 回答 2

5

一个选择器可以有任意数量的 ID 选择器。

例如,#id1 #id2选择具有 ID 的元素,id2如果它是具有 ID 的元素的后代id1。它有两个 ID 选择器,因此它会比 更具体,例如,#id2它只选择任何元素,只要它是具有 ID 的元素id2,没有任何其他条件。

所以在这两个规则之间(假设没有内联样式):

#id1 #id2 { color: red; }
#id2 { color: blue; }

第一条规则优先,该元素中的文本颜色为红色而不是蓝色,因为第一条规则有更多的 ID 选择器。

于 2011-06-20T00:29:13.250 回答
2

这是一个示例,具有更多 id 的选择器将优先:

<div id="parent">
   <div id="child">
      Some text here
   </div>
</div>

现在当我应用 css

#parent #child {
   background-color: red;
}

#parent div {
    background-color: yellow;
}

选择器#parent #child将优先。因为它比第二个更具体。在这种情况下,div 将具有红色背景。

于 2011-06-20T00:31:41.293 回答