CSS "#id1 #id2" 选择器,为什么它和 "#id2" 不一样?

CSS "#id1 #id2" selector, why it is not same as only "#id2"?

请参阅 this jsfiddle

中的示例
  #rightDiv a#id1match { left:60px;top:10px }

#id1matcha#id1match 的更改破坏了布局。


我的 "invalid logic" 是:#id 选择器指向文档中的唯一 ID,因此,"id inside other thing" 必须与 "id" 相同...并且在此如果 HTML 始终具有两个 ID,而不是更改...当两者​​都存在时, 内部选择器 不应对 ID 产生任何影响。

您应该阅读 CSS Specificity

#id1match 确实与您的元素正确匹配。然而,该元素也有 class .region ,它有一个更具体的选择器 #rightDiv .region

所以基本上你的样式被覆盖了,因为当你删除 #rightDiv 规则变得不那么重要了。在任何开发人员工具中查看您的元素,您可以看到发生了什么。