css - 使用 CSS,选择具有多个 ID 属性 "#id1 #id2 {..."是否有意义

标签 css css-selectors selector

<分区>

Possible Duplicate:
CSS inner id selectors

我遇到了下面的CSS选择器,感觉不太懂。

#id1 #id2 .class1 {
 color: #fff;
}

在我看来,CSS 选择器首先匹配元素 #id1,然后匹配元素 #id2,然后匹配下面的元素,包括 #id2 的类属性设置为 class1

我的直觉是它是有效的 CSS,但也没有必要指定 #id1,或者如果它只是为了在 #id1 时匹配文档> 有一个子级 #id2,但不匹配没有父级 #id1#id2

由于 #id1 具有 0,1,0,0 的特异性,而 #id2 具有 0,1,0,0 的特异性,并且 .class1 的特异性为 0,0,1,0,你得到 0,2,1,0。但这是必要的还是有用的?似乎更有效的方法是创建两个规则并分别按每个 id 进行选择。

我似乎找不到任何其他类似 #id1 #id2 ... 的 CSS 选择器示例。

任何人都可以对此发表评论并帮助我进行健全性检查吗?

最佳答案

这会选择具有类 class1 和具有 id id2 的祖先(包括父元素)的元素,该元素本身具有具有 id1 的祖先。所以您的解释很接近,但这不会选择具有 id2class1 的元素,除非它包含在另一个 id2 中。

如果您希望它包含 id2,您必须使用 #id1 #id2.class1, #id1 #id2 .class1 作为选择器。

如果你只是执行了 #id2 .class1 那么你会选择 class1 类的元素在 id2 的元素中,无论是否id2 元素在 id1 中。

所以这两个选择器有不同的含义。

关于css - 使用 CSS,选择具有多个 ID 属性 "#id1 #id2 {..."是否有意义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6839910/

上一篇:html - 双下拉 - 带 OVERFLOW 第 3 列子列表

下一篇:css - 如何配置 div 以调整大小以包含内部 div?

相关文章:

dojo.query 不适用于包含波浪号 (~) 字符的属性选择器

css - 是否有 "previous sibling"选择器?

java - SelectionKey.interestOps(int ops) 的底层工作原理

javascript - 这些选择器中哪一个可能更快?

jQuery - 在 Unslider 的每个 <li> 上运行函数

css - 如何使用 Css 在 map 中创建 'blurred area'?

html - CSS 选择器 : find dd element corresponding to a dt tag?

jquery - CSS 选择下一个具有类的元素

css - Angular 将样式应用于 ngRepeat 中的第一个可见项

javascript - 悬停时更改img标签内容