From the CSS selector spec:
E + F matches any F element immediately preceded by a sibling element E.
操作符优先级怎么样? #id1#id2#id3是什么匹配?
#id1#id2#id3怎么办?
有没有选择器,意思是#id1(#id2#id3)或(#id1#id2)#id3?
(我假设(和)不是真的允许在CSS选择器,我没有看到他们在规范)
解决方法
浏览器从每个顺序的简单选择器和组合器以线性方式从右到左读取。组合者不会以任何方式影响排序。在最后一个组合器(如果有的话)之后,最右边的选择器被称为键选择器(参见下面的参考链接了解更多),并且标识规则应用于的元素(也称为选择器的主题,尽管注意到键选择器可能并不总是表示选择器的主题,因为不同的应用程序不同地实现选择器)。
选择器#id1#id2#id3表示
Select element
#id3
if it directly follows as a sibling of#id2
that is a descendant of#id1
.
#id3与选择器匹配的DOM结构将如下所示:
#id1 ... any level of nesting #id2 #id3
而#id1#id2#id3表示
Select element
#id3
if it is a descendant of#id2
that directly follows as a sibling of#id1
.
而#id3与选择器匹配的DOM结构将如下所示:
#id1 #id2 ... any level of nesting #id3
请注意与上述相比,此DOM结构中元素#id2的位置的差异。
这里没有太多的优先问题,因为后代和兄弟组合者在DOM中的不同方向。两个选择器序列从右到左读取任一种方式。
相关答案:
> CSS combinator precedence?
> Are parentheses allowed in CSS selectors?
> CSS Adjacent Selector / Meaning