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

能否将选择器(如p、li)与:not()否定伪类组合使用?

选择器分组与:not()伪类的组合使用

当然可以将p、li这类基础选择器和:not()否定伪类组合使用,核心是要正确处理选择器分组逻辑,避免规则出现偏差。

从你给出的代码来看,当前写法是把p元素和li下符合条件的a元素分成两个独立选择器来应用样式,这种写法是完全有效的。但如果你的目标是对p和li本身进行分组,再结合:not()规则(比如排除特定类的p或li),写法需要做相应调整。

场景1:你的原需求(p元素 + li下非指定类的a链接)

可以通过优化分组来减少代码重复:

/* 未访问链接样式 */
p, 
li a:not(.tags, .promo):link {
    border-bottom: 1px solid; 
    padding: 0 0 0.06rem 0;
}

/* 已访问/悬停/激活状态样式 */
p, 
li a:not(.tags, .promo):visited,
li a:not(.tags, .promo):hover,
li a:not(.tags, .promo):active { 
    border-bottom: 1px solid #ccc;
}

场景2:对p和li本身分组结合:not()

如果需要选中所有不带.exclude类的p和li元素,写法如下:

p:not(.exclude), 
li:not(.exclude) {
    margin: 1rem 0;
    line-height: 1.5;
}

注意事项

  • 选择器分组时,逗号分隔的每一项都是独立选择器,逻辑互不影响,要确保每个分组项的语法正确
  • 现代浏览器(除IE外)都支持:not()伪类的多参数写法(比如:not(.tags, .promo)),兼容性无需过度担心

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.02 10:55:20