我有一个元素,可以通过使用JS的切换按钮添加--active
类。
<div class="container">
<div class="element element--active"></div>
::after
</div>
添加此类后,我希望::after
元素为display:none;
以下内容不起作用,
.element--active + ::after {
display: none;
}
但为什么会这样?
我的替代方法是在添加element--active
时向容器添加另一个类吗?
答案 0 :(得分:2)
.element--active + ::after
与.element--active + *::after
因此它找到一个元素,它是element--active
类的成员。然后它找到了它的相邻兄弟。它没有。所以它停止了。
如果您想在.element--active
之后使用伪元素,那么您只需使用.element--active::after
。
如果你想在.container
之后使用伪元素,那么你就会被卡住,因为CSS没有父选择器。
答案 1 :(得分:1)
这不起作用,因为::after
是.container
的伪元素。由于您无法在CSS中选择父级,因此解决方案可能是将类添加到.container
,然后删除::after
元素。