可能的重复项:
CSS 内部 ID 选择器
我遇到了以下CSS选择器,我觉得它不太有意义。
#id1 #id2 .class1 {
color: #fff;
}
在我看来,CSS 选择器将首先匹配元素 #id1
,然后与元素#id2
匹配,然后与类属性设置为 class1
的元素(包括#id2
(匹配。
我的预感是它是有效的 CSS,但也没有必要指定 #id1
,或者如果它只是为了在#id1
有子#id2
时匹配文档,而不是在没有父#id1
的情况下匹配#id2
。
#id1
的特异性为 0,1,0,0,0,#id2
的特异性为 0,1,0,0,0,而.class1
的特异性为 0,0,1,0,因此得到 0,2,1,0。但这是否必要或有用?似乎更有效的方法是创建两个规则并分别按每个 id 进行选择。
我似乎找不到任何其他看起来像#id1 #id2 ...
的 CSS 选择器示例。
任何人都可以对此发表评论并帮助我进行健全性检查吗?
这选择具有类class1
的元素和具有 id id2
的祖先(包括父级(,该祖先本身具有具有 id1
的祖先。所以你的解释很接近,但这不会选择具有id2
和class1
的元素,除非它包含在另一个id2
中。
如果您希望它包含id2
则必须使用 #id1 #id2.class1, #id1 #id2 .class1
作为选择器。
如果您只是#id2 .class1
那么无论id2
元素是否在id1
中,您都会在具有id2
的元素中选择具有类class1
的元素。
因此,这两个选择器具有不同的含义。