- CSS 教程
- CSS - 首页
- CSS - 路线图
- CSS - 简介
- CSS - 语法
- CSS - 选择器
- CSS - 包含
- CSS - 度量单位
- CSS - 颜色
- CSS - 背景
- CSS - 字体
- CSS - 文本
- CSS - 图片
- CSS - 链接
- CSS - 表格
- CSS - 边框
- CSS - 块级边框
- CSS - 内联边框
- CSS - 外边距
- CSS - 列表
- CSS - 内边距
- CSS - 光标
- CSS - 轮廓
- CSS - 尺寸
- CSS - 滚动条
- CSS - 内联块
- CSS - 下拉菜单
- CSS - 可见性
- CSS - 溢出
- CSS - 清除浮动
- CSS - 浮动
- CSS - 箭头
- CSS - 调整大小
- CSS - 引号
- CSS - 顺序
- CSS - 位置
- CSS - 连字符
- CSS - 悬停
- CSS - 显示
- CSS - 聚焦
- CSS - 缩放
- CSS - 平移
- CSS - 高度
- CSS - 连字符字符
- CSS - 宽度
- CSS - 不透明度
- CSS - Z-Index
- CSS - 底部
- CSS - 导航栏
- CSS - 覆盖层
- CSS - 表单
- CSS - 对齐
- CSS - 图标
- CSS - 图片库
- CSS - 注释
- CSS - 加载器
- CSS - 属性选择器
- CSS - 组合器
- CSS - 根元素
- CSS - 盒模型
- CSS - 计数器
- CSS - 剪切
- CSS - 书写模式
- CSS - Unicode-bidi
- CSS - min-content
- CSS - All
- CSS - Inset
- CSS - Isolation
- CSS - Overscroll
- CSS - Justify Items
- CSS - Justify Self
- CSS - Tab Size
- CSS - Pointer Events
- CSS - Place Content
- CSS - Place Items
- CSS - Place Self
- CSS - Max Block Size
- CSS - Min Block Size
- CSS - Mix Blend Mode
- CSS - Max Inline Size
- CSS - Min Inline Size
- CSS - Offset
- CSS - Accent Color
- CSS - User Select
- CSS 高级
- CSS - 网格
- CSS - 网格布局
- CSS - Flexbox
- CSS - 可见性
- CSS - 定位
- CSS - 图层
- CSS - 伪类
- CSS - 伪元素
- CSS - @规则
- CSS - 文本效果
- CSS - 分页媒体
- CSS - 打印
- CSS - 布局
- CSS - 验证
- CSS - 图片精灵
- CSS - Important
- CSS - 数据类型
- CSS3 教程
- CSS3 - 教程
- CSS - 圆角
- CSS - 边框图片
- CSS - 多背景
- CSS - 颜色
- CSS - 渐变
- CSS - 盒阴影
- CSS - 盒装饰中断
- CSS - 光标颜色
- CSS - 文本阴影
- CSS - 文本
- CSS - 2d 变换
- CSS - 3d 变换
- CSS - 过渡
- CSS - 动画
- CSS - 多列
- CSS - 盒尺寸
- CSS - 工具提示
- CSS - 按钮
- CSS - 分页
- CSS - 变量
- CSS - 媒体查询
- CSS - 函数
- CSS - 数学函数
- CSS - 遮罩
- CSS - 形状
- CSS - 样式图片
- CSS - 特异性
- CSS - 自定义属性
- CSS 响应式
- CSS RWD - 简介
- CSS RWD - 视口
- CSS RWD - 网格视图
- CSS RWD - 媒体查询
- CSS RWD - 图片
- CSS RWD - 视频
- CSS RWD - 框架
- CSS 工具
- CSS - PX 到 EM 转换器
- CSS - 颜色选择器和动画
- CSS 资源
- CSS - 有用资源
- CSS - 讨论
CSS - :not()伪类
CSS 伪类函数:not()表示或匹配不匹配给定选择器列表的元素。它也称为否定伪类,因为它避免从列表中选择特定项目。
伪类:not()是一个非常棘手的伪类,会产生意想不到的结果。所以你应该注意它。
使用:not()的一些意外和不寻常的结果如下
:not()伪类用于编写无用的选择器,例如:use(*)表示它将匹配任何不是元素的元素。这没有任何意义,因此不会应用任何规则。
它可以提高规则的特异性;例如#foo.not(#bar),将匹配与#foo一样简单的元素,但特异性增加了两个选择器ID。
从逗号分隔的选择器列表中,最具体的选择器的特异性将替换:not()伪类的特异性。
如果你传递类似:not(.foo)的内容,则伪类将匹配所有内容,包括基本的 HTML 标签,例如<html>或<body>。
如果你传递:not(table),它将导致匹配tr、tbody、th、td、caption等,因为它们都可以匹配给定的参数 :not(table)。
一次可以否定多个选择器,例如 :not(.foo, .bar),表示 :not(.foo) :not(.bar)
当作为列表的一部分传递的任何选择器被证明是无效或不受支持时,将导致整个规则无效。为了避免这种情况,你应该使用:is(),因为它具有宽容选择器列表的特性。
语法
:not(<complex-selector-list>) { /* ... */ }
伪类:not()需要一个逗号分隔的一个或多个选择器的列表作为其参数。该列表不应包含另一个:not()或伪元素。
CSS :not() 示例
这是一个:not()伪类的示例。
在这个例子中
一个类(.sample)声明了一些 CSS 样式。
:not() 伪类与 h1 元素上的 .sample 类一起使用。
:not() 伪类使用 h1 作为参数,因此 CSS 样式应用于除 h1 元素之外的所有其他元素。
<html> <head> <style> .sample { text-shadow: 2px 2px 3px yellow; } /* <h1> elements that are not in the class '.sample' */ h1:not(.sample) { background-color: lightblue ; } /* Elements that are not <h1> elements */ body :not(h1) { text-decoration-line: line-through; } /* Elements that are not <div> and not <span> elements */ body :not(div):not(span) { font-weight: bold; } </style> </head> <body> <h1>heading with :not(.sample) pseudo-class applied</h1> <h1 class="sample">heading with styling applied</p> <p>Paragraph, hence :not(h1) and :not(div):not(span) applied.</p> <div>div element, hence :not(h1) applied.</div> </body> </html>
以下是:not()的另一个示例,其中另一个伪类:nth-child用于在容器中选择交替的p元素,并应用样式。
<html> <head> <style> p:not(:nth-child(2n+1)) { font-size: 3em; } </style> </head> <body> <h1>Heading</h1> <p>Paragraph 1</p> <p>Paragraph 2</p> <p>Paragraph 3</p> <p>Paragraph 4</p> </body> </html>
在以下示例中,:not()应用于具有类.sample的<li>。因此,样式应用于没有.sample类的<li>。
<html> <head> <style> li:not(.sample) { font-size: 2.5em; color: red; } .sample { color: green; font-weight: 800; background-color: lightyellow; } </style> </head> <body> <h1>Unordered List</h1> <ul> <li>list item 1</li> <li class="sample">list item 2</li> <li>list item 3</li> </ul> </body> </html>