可能重复:
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选择器的任何其他示例。
有人可以对此发表评论并帮助我进行健全检查吗?
答案 0 :(得分:1)
这将选择具有类class1
的元素和具有标识id2
的祖先(包括父级),其本身具有id1
的祖先。因此,您的解释很接近,但这不会选择包含id2
和class1
的元素,除非它包含在另一个id2
中。
如果您想要包含id2
,则必须使用#id1 #id2.class1, #id1 #id2 .class1
作为选择器。
如果您刚刚#id2 .class1
,则无论class1
元素是否在{id2
中,您都会在具有id2
的元素中选择类id1
的元素1}}。
所以这两个选择器有不同的含义。