gpt4 book ai didi

CSS 选择器后代选择器

转载 作者:太空宇宙 更新时间:2023-11-03 23:52:43 27 4
gpt4 key购买 nike

我无法理解 W3C 规范中的以下内容。

div * p

matches a P element that is a grandchild or later descendant of a DIV element. Note the white space on either side of the "*" is not part of the universal selector; the white space is a combinator indicating that the DIV must be the ancestor of some element, and that that element must be an ancestor of the P.

空格是如何表示 DIV 必须是某个元素的祖先的组合符?

请帮助澄清

最佳答案

要回答您的问题,您需要先了解浏览器如何解释 CSS 规则。

无论何时编写 CSS 选择器,都可以在选择器中使用一个或多个元素。例如,选择器 div有一个元素,都是div pdiv > p有两个。

将 CSS 选择器视为过滤的多个阶段。 CSS 选择器实际上是由浏览器从右到左读取它们来解释的。当在一个选择器中指定多个元素时,您首先找到最右边的所有元素集合,然后过滤下一个元素集合,依此类推。

div 的情况下规则,我们说的是“找到页面上的所有‘div’元素”。很简单。

div p 的情况下规则,我们首先“找到页面上的所有'p'元素”。但是随后,对于其中的每个“p”元素,我们会要求“只给我具有‘div’作为祖先的‘p’元素”。

用同样的逻辑,我们来描述div * p :我们首先“找到页面上的所有'p'元素”。接下来,我们要求“只给我具有任何类型父元素的‘p’元素”。从 那个 集合中,我们然后要求“只给我这个集合中具有‘div’作为祖先的元素”。

选择器 div * p几乎div p相同,但有一个关键区别:<div>必须至少是 <p> 的祖 parent 供选择器匹配。参见 http://jsfiddle.net/cDTGY/举个例子。

关于CSS 选择器后代选择器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19508648/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com