登录
首页 >  文章 >  前端

CSS选择器与not伪类使用技巧

时间:2026-04-12 14:03:44 438浏览 收藏

CSS中的:not伪类是提升样式精准度与代码简洁性的利器,它通过“排除法”灵活筛选不匹配特定条件(如类名、属性、状态或标签类型)的元素,支持链式组合与多参数写法(现代浏览器),广泛应用于避免重复样式、优化可维护性等场景;但需注意其不可嵌套、不支持伪元素等限制,以及旧版浏览器的兼容性细节——掌握这些技巧,能让CSS更智能、更高效。

css选择器与not伪类组合使用

CSS 中的 :not 伪类非常实用,它允许你选择不匹配某个选择器的元素。当你将 :not 与其他选择器组合使用时,可以更精确地控制样式应用范围,避免不必要的重复代码。

基本语法

:not(选择器) 表示“除了匹配该选择器的元素之外的所有元素”。括号内可以是简单选择器,如类型、类、ID、属性选择器或伪类。

注意::not() 内部不能嵌套另一个 :not(),也不能包含伪元素。

常见组合用法

下面是一些实际开发中常用的 :not 组合方式:

排除特定类的元素

如果你想给所有 div 添加边框,但排除带有 .no-border 的 div:

div:not(.no-border) {
  border: 1px solid #ccc;
}

排除特定标签类型

比如给表单中除 submit 按钮外的所有 input 添加样式:

input:not([type="submit"]) {
  padding: 8px;
}

结合属性选择器过滤

为没有 required 属性的输入框设置浅色边框:

input:not([required]) {
  border-color: #ddd;
}

排除已激活或禁用状态

只对未被禁用的按钮应用悬停效果:

button:not(:disabled):hover {
  background-color: #007bff;
}

高级技巧与注意事项

:not 可以链式使用,实现更复杂的筛选逻辑:

/* 排除 .hidden 类且不是 display:none 的元素 */ *:not(.hidden):not([style*="display:none"]) {
  opacity: 1;
}

支持多个选择器(需浏览器支持):

/* 排除 span 和 .skip 元素 */ p:not(span, .skip) {
  font-size: 16px;
}
注意:多参数写法在较新版本浏览器中才支持,旧版可能只接受单个选择器。

基本上就这些。合理使用 :not 能让 CSS 更简洁灵活,关键是理解它只接受简单选择器,并注意兼容性问题。不复杂但容易忽略细节。

今天关于《CSS选择器与not伪类使用技巧》的内容就介绍到这里了,是不是学起来一目了然!想要了解更多关于CSS,选择器的内容请关注golang学习网公众号!

资料下载
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>