CSS选择器-如果后跟类,则取消设置内容

CSS选择器-如果后跟类,则取消设置内容,css,css-selectors,pseudo-element,Css,Css Selectors,Pseudo Element,如果以下元素是图像或获得特定的类名,我当前尝试在css类中取消设置::before内容 结构 我得到的第一个元素是一个没有特定id的a:href(我无法设置)。此元素创建另一个伪元素,其前面有一个图标 第二个元素是a:href中的图像类 例如: <a href="https://example.org/assets/uploads/2015/02/A-Upload.jpg"> <img class="alignright wp-image-8184 size-mediu

如果以下元素是图像或获得特定的类名,我当前尝试在css类中取消设置
::before
内容

结构

我得到的第一个元素是一个没有特定id的
a:href
(我无法设置)。此元素创建另一个伪元素,其前面有一个图标

第二个元素是a:href中的图像类

例如:

    <a href="https://example.org/assets/uploads/2015/02/A-Upload.jpg">
<img class="alignright wp-image-8184 size-medium" width="300" height="188" sizes="(max-width: 300px) 100vw, 300px" srcset="https://example.org/assets/uploads/2015/02/A-Upload-300x188.jpg 300w, https://example.org/assets/uploads/2015/02/A-Upload-1600x1000.jpg 1600w" alt="test" src="https://example.org/assets/uploads/2015/02/xA-Upload-300x188.jpg.pagespeed.ic.H4F1dyfjOe.jpg">
</a>

没有成功。我希望有人能告诉我我做错了什么。

目前没有办法仅在CSS中基于子元素来设计父元素的样式。您试图做的事情根本不可能(在CSS3中)

您需要将一个类添加到
a
(或另一个父节点)并将其用作参考,或者使用JavaScript根据子
img.alignright
更新父节点的样式

有人提出了一个
:has()
选择器,但我认为目前没有任何浏览器支持它。语法类似于:

a:has(> img.alignright):before {
  content: unset;
}

但是,我敢肯定,这仍然是一条出路。

目前没有办法仅基于CSS中的子元素来设计父元素的样式。您试图做的事情根本不可能(在CSS3中)

您需要将一个类添加到
a
(或另一个父节点)并将其用作参考,或者使用JavaScript根据子
img.alignright
更新父节点的样式

有人提出了一个
:has()
选择器,但我认为目前没有任何浏览器支持它。语法类似于:

a:has(> img.alignright):before {
  content: unset;
}

但是,我敢肯定,这仍然是一条出路。

哦,好吧,我会检查其他途径,希望css4很快就会到来。非常感谢您提供的信息。哦,好的,我会检查其他方式,希望css4很快就会到来。非常感谢你提供的信息。