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

CSS如何为除嵌套元素外的内容应用样式?

问题原因

你写的CSS选择器.red :not(.notred)只匹配.red元素下的子元素,但Text1是.red容器里的直接文本内容,不属于任何子元素,所以这个选择器根本选不到它。而Text2所在的<p>带.notred类,也被排除了,结果就是俩文本都没变红。

解决办法

推荐用下面两种简单方式实现需求:

方式一:先统一设置,再覆盖

这是最稳妥且兼容性最好的写法:

/* 先让.red容器内所有文本默认变红 */
.red {
  color: #ff0000;
}
/* 再把.notred元素的颜色改回默认 */
.red .notred {
  color: initial; /* 也可以直接写你需要的颜色,比如#000 */
}

方式二:用:has伪类(可选)

如果你想精准选中容器内的文本和非.notred子元素,可以用:has,但注意旧浏览器不支持:

.red:not(:has(.notred)),
.red :not(.notred) {
  color: #ff0000;
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.14 14:49:55