是否可以选择没有特定类型子元素的元素?

Jam*_* Ko 5 html css css-selectors css3

我正在尝试选择<a>不是<img>元素父元素的元素.(注意:如果它是相关的,我想选择的一些锚是没有孩子的.)我试过这个:

a > :not(img) {}
Run Code Online (Sandbox Code Playgroud)

还有这个:

a:not(> img) {}
Run Code Online (Sandbox Code Playgroud)

但它们似乎都不起作用.我如何在CSS中实现这一目标?

75t*_*one 7

有一个伪类的规范,目前正在起草中。:has()目前还没有浏览器支持它。如果有一天该规范获得批准并实施,您将能够执行以下操作:

a:not(:has(img)) {
    // Styles
}
Run Code Online (Sandbox Code Playgroud)

MDN页面说这:has在样式表中永远不起作用,只能在 JavaScript 中起作用;但话虽如此,它链接到规范中关于“动态选择器配置文件”的部分,但显然不再存在。

我认为浏览器供应商在实现 CSS 功能时通常会遇到问题,这些功能需要了解仅在创建所选元素后才存在的 DOM,所以我不知道我们是否应该对此抱有希望。关注邮件列表或通常比我聪明的人可能会提供更好的预后。