css - CSS 选择器中 + 运算符的优先级是多少?

标签 css css-selectors

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 选择器中实际上是不允许的,我在规范中没有看到它们)

最佳答案

浏览器以线性方式从右到左读取每个简单选择器和组合器序列。组合器不会以任何方式影响排序。最右边的选择器,在最后一个组合器之后,如果有的话,被称为键选择器(更多信息请参见下面的引用链接),它标识规则适用的元素(也称为 <选择器的 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/

相关文章:

html - 有最小字体大小和最大字体大小这样的东西吗?

html - 在唯一的表行上采用最后一个子级而不是第一个子级

javascript - jquery/javascript 或 css - 仅当显示可见时第 n 个子级的 css

css - 使用 jQuery 与 CSS3 :after 并行设置属性上的标题

css - 有什么方法可以使用带有 CSS 选择器的文本来定位 Web 元素吗?

css - Chrome 在方向改变后隐藏滚动元素

html - 通过 HTML 制作 "Star"

php - 使用AJAX/PHP/JS在一个较长的过程中报告多个状态消息

javascript - 如何使用 ondrop 事件访问类元素内的段落元素并将其删除?

html - CSS 选择 child