📅  最后修改于: 2023-12-03 15:29:07.617000             🧑  作者: Mango
在 CSS 中,:not() 伪类选择器用于选择不匹配指定选择器的元素。该选择器的语法如下:
:not(selector)
其中 selector
是任意有效的 CSS 选择器。该选择器匹配所有不符合 selector
选择器的元素。
与 :not()
伪类选择器一起使用时,常常用来选择除了最后一个子元素以外的所有符合选择器的元素。:last-child
伪类选择器用于选择元素的最后一个子元素,其语法如下:
:last-child
例如,我们有如下 HTML 结构:
<div class="container">
<h1 class="heading">标题1</h1>
<h2 class="sub-heading">副标题 1.1</h2>
<h2 class="sub-heading">副标题 1.2</h2>
<h1 class="heading">标题2</h1>
<h2 class="sub-heading">副标题 2.1</h2>
</div>
我们可以使用 :not(:last-child)
来选择除了最后一个 h1.heading
元素以外的所有符合条件的元素,代码如下:
.heading:not(:last-child) {
margin-bottom: 1em;
}
上述代码中,选择器 .heading:not(:last-child)
表示选择所有 class 为 heading
的元素并排除最后一个元素,然后为其设置 margin-bottom: 1em
样式。
:not()
,应该将包含更多选择器的 :not()
放在前面,以减少多余的计算。例如,应该使用 :not(.foo):not(.bar)
而不是 :not(.foo.bar)
。:not()
伪类选择器的兼容性问题,可能无法在较老的浏览器中正常工作。建议在使用 :not()
伪类选择器时,先检查其是否被目标浏览器所支持。:not()
伪类选择器,以避免兼容性问题。例如,可以使用 .heading + .heading
来选择除了第一个 .heading
元素以外的所有元素。