使用CSS,选择多个ID属性“#id1#id2 {...”是否有意义

时间:2011-07-27 05:45:19

标签: css css-selectors selector

  

可能重复:
  CSS inner id selectors

我遇到了以下的CSS选择器,我觉得它没有多大意义。

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

在我看来,CSS选择器首先匹配元素#id1,然后匹配元素#id2,然后匹配到包含#id2的{​​{1}}下面的元素属性设置为class1

我的预感是它是有效的CSS,但也没有必要指定#id1,或者如果它只是为了匹配#id1有一个孩子#id2时的文档},但不匹配没有父#id2的{​​{1}}。

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

我似乎无法找到类似.class1的CSS选择器的任何其他示例。

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

1 个答案:

答案 0 :(得分:1)

这将选择具有类class1的元素和具有标识id2的祖先(包括父级),其本身具有id1的祖先。因此,您的解释很接近,但这不会选择包含id2class1的元素,除非它包含在另一个id2中。

如果您想要包含id2,则必须使用#id1 #id2.class1, #id1 #id2 .class1作为选择器。

如果您刚刚#id2 .class1,则无论class1元素是否在{id2中,您都会在具有id2的元素中选择类id1的元素1}}。

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