You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何为H2元素的:after伪元素正确应用:not()选择器?

解决CSS伪元素:not()选择器的使用问题

你之前的写法错在把:not()加在了伪元素::after上,但.h2lines类是绑定在<h2>标签本身的,伪元素并不具备这个类,所以::after:not(.h2lines)相当于筛选掉所有不存在的伪元素类,结果就是所有H2的下划线都被移除了。

给你两种可行的解决方案:

方案一:先全局设置,再覆盖特定类

先保留原来的全局下划线样式,再针对带.h2lines类的H2,取消它的伪元素样式:

/* 全局给.post下的H2加下划线 */
.post h2:after {
    content: '';
    display: block;
    border: .5px dashed;
}

/* 取消带.h2lines类的H2的下划线 */
.post h2.h2lines:after {
    display: none; /* 直接隐藏伪元素 */
    /* 也可以用 border: none; 或者 content: none; 达到相同效果 */
}

方案二:直接用:not()筛选父元素

一开始就只给不带.h2lines类的H2添加伪元素下划线,这样带类的H2自然不会有下划线:

.post h2:not(.h2lines):after {
    content: '';
    display: block;
    border: .5px dashed;
}

另外注意你示例里的类名拼写:一会儿是.h2lines,一会儿是.h2line,实际使用时要保证类名完全一致,不然样式不会生效。

内容的提问来源于stack exchange,提问作者Seb

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.04 19:35:15