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 选择器中实际上是不允许的,我在规范中没有看到它们)
最佳答案
浏览器以线性方式从右到左读取每个简单选择器和组合器序列。组合器不会以任何方式影响排序。最右边的选择器,在最后一个组合器之后,如果有的话,被称为键选择器(更多信息请参见下面的引用链接),它标识规则适用的元素(也称为 <选择器的 em>subject,但请注意,键选择器可能并不总是代表选择器的主题,因为不同的应用程序以不同方式实现选择器)。
选择器#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
请注意元素 #id2
在这个 DOM 结构中的位置与上面的不同。
这里没有太多的优先级问题,因为后代组合子和同级组合子在 DOM 中的方向不同。两种选择器序列都从右到左阅读。
相关回答:
关于css - CSS 选择器中 + 运算符的优先级是多少?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8135694/