gpt4 book ai didi

css - 最新的 CSS 父选择器

转载 作者:行者123 更新时间:2023-12-03 22:58:23 25 4
gpt4 key购买 nike

我能找到的关于此的最新信息是 W3C Selectors Level 4 Editor’s Draft ,但据我所知,它不再提及父选择器。

我知道有一个 Google survey about this ,但现在结束了。

父选择器发生了什么?它会被引入,还是被删除?

最佳答案

调查最终导致主题选择器(所谓的“父选择器”的专有名称)被更通用的 :has() 伪类所取代,该伪类被记录在案 here(有一个有趣的 anchor 名称 #relational ,我想知道是否会粘住)。
实现可能只有在此功能的规范更加稳定时才会出现。目前,随着像用伪类完全取代主题选择器这样的破坏性变化,我不指望它很快就会发生。也就是说,:has() 伪类很可能会坚持下去,但由于其本质,它是否可以在 CSS 中实现还有待观察。请参阅 this section of the same draft 以了解实现配置文件。
:has() 更通用的原因是,对于主题选择器,如果单个复杂选择器可以有多个主题选择器(因为单个复杂选择器只能有一个主题)和/或如果 :matches() 等功能伪类接受主题选择器。但是因为伪类是一个简单的选择器,它适合现有的选择器语法,并且您可以可靠地假设 :has() 将在任何接受伪类的地方被接受。
例如,这使得如下这样的选择器在理论上是可能的:

/* 
* Select any p
* that is a sibling of a ul
* that has more than one li child.
*/
ul:has(> li:nth-of-type(2)) ~ p, /* p follows ul */
p:has(~ ul:has(> li:nth-of-type(2))) /* p precedes ul */
而使用主题选择器,这只有在 :matches() 接受主题选择器时才有可能,这在规范中从未直接说明:
ul:matches(! > li:nth-of-type(2)) ~ p, /* p follows ul */
!p ~ ul:matches(! > li:nth-of-type(2)) /* p precedes ul */
你也可以在这里看到为什么我不喜欢任何一种形式的选择器的名称“父选择器”——它可以用于更多。

关于css - 最新的 CSS 父选择器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27982922/

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