我试图选择不属于<a>
元素的<img>
元素。 (注意:如果相关的一些我想选择的锚点是无子的。)我试过这个:
a > :not(img) {}
和此:
a:not(> img) {}
但它们似乎都不起作用。我将如何在CSS中实现这一目标?
答案 0 :(得分:4)
:has()
伪类有spec,目前处于草稿状态。没有浏览器支持它。如果规范有一天得到批准和实施,那么您就可以做到这一点:
a:not(:has(img)) {
// Styles
}
MDN page表示:has
永远不会在样式表中使用,只能在JavaScript中使用;但是在说,它链接到规范的一部分关于&#34;动态选择器配置文件&#34;显然不再存在。
我认为浏览器供应商在实现CSS功能时通常会遇到问题,这些功能需要知道只在创建所选元素后才存在的DOM,所以我不知道我们是否应该对此抱有希望。跟踪邮件列表或通常比我聪明的人可能会提供更好的预后。
答案 1 :(得分:1)
不幸的是,没有。你需要使用jQuery。
您可以使用CSS执行某种解决方法:
将类分配给没有子元素作为图像的链接,并使用该类对链接进行正常样式设置(例如a.class{color: red}
)
将类分配给具有image子元素的链接,并使用a:not(.class){}
更改其颜色
原因:CSS中没有父选择器。看到: Is there a CSS parent selector?,CSS Parent/Ancestor Selector