关于令人困惑的css特殊性规则的问题(摘自SAMS自学css 24小时第二版)

关于令人困惑的css特殊性规则的问题(摘自SAMS自学css 24小时第二版),css,css-selectors,css-specificity,Css,Css Selectors,Css Specificity,这是本书给出的关于浏览器如何确定在冲突中应用哪条规则的5条规则中的第2条规则: id选择器是第二个最具体的[在内联样式属性之后]。如果规则中有多个id,则id选择器数量最多的规则获胜 我真的不明白规则2所说的是什么——它说“如果规则中有多个id”(单数)。如果只有一条规则,那么如何进行冲突或比较(“具有最大……胜利的规则”)?一个规则怎么可能有不同数量的id选择器,如果只有一个规则,冲突在哪里 有人能彻底解释一下这条规则吗?感谢您的帮助,因为我正在尝试了解网页设计的基本知识选择器可以有任意数量的

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

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

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


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

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

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

因此,在这两个规则之间(假设没有内联样式):


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

以下是一个示例,具有更多ID的选择器优先:

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

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

关于那些书。@alex:我希望每个人都能读这篇文章你是说
#家长#孩子
-)
<div id="parent">
   <div id="child">
      Some text here
   </div>
</div>
#parent #child {
   background-color: red;
}

#parent div {
    background-color: yellow;
}