在MDN Web Docs网站上,他们提到 Select 器按钮的总特性:Not(#mainBtn,.cta)如下:

| Selector                    | Identifiers | Classes | Elements | Total specificity

| button:not(#mainBtn, .cta)  | 1           | 0       | 1        | 1-0-1

以下是MDN网站的URL: (https://developer.mozilla.org/en-US/docs/Learn/CSS/Building_blocks/Cascade_and_inheritance.

请参阅错误的突出显示部分:

See the highlighted portion for the error

我期待的是:

| Selector                    | Identifiers     | Classes     | Elements      | Total specificity

| button:not(#mainBtn, .cta)  | 1(for #mainBtn) | 1(for .cta) | 1(for button) | 1-1-1

我期待的是:

I am expecting this

有没有人能告诉我我是不是对的?

推荐答案

您链接到的MDN页面特别清楚地介绍了这一点,但不包括IMO.它说:

否定(:NOT())、关系 Select 器(:HAS())、Matches-Any(:is())伪类和CSS嵌套本身不会增加专用性,但它们的参数或嵌套规则会增加专用性.The specificity weight that each contributes to the specificity algorithm is the specificity weight of the selector in the parameter or nested rule with the greatest weight.

The Selectors specification更准确地描述了它:

:is()、:Not()或:Has()伪类的特殊性被其 Select 器列表参数中最具体的复杂 Select 器的特殊性所取代.

所以,对于:not(#mainBtn, .cta),我们取列表中两个 Select 器中较大的一个:

#mainBtn = 1, 0, 0
.cta     = 0, 1, 0

所以它们中较大的是1,0,0,然后我们加上button特异度=0,0,1

结果是1,0,1.

Css相关问答推荐

为什么我的Angular material css文件不工作?

如何将表格单元格的最后一个子级与单元格底部对齐?

Mat-Form-字段占用更多区域,导致其他控件远离它

如何在CSS中创建水平/垂直对称的虚线边框?

在Reaction中自定义ANTD日期选取器

在 Next.js 中使用 .modules.scss 时未应用样式

为什么 CSS Calc() 函数只需要+或-运算符前后有空格

如何在启动时滚动 div 的底部?

CSS Select 器在 rvest 中找到,在 RSelenium 中找不到

Sass @use 排序

如何保持包装的弹性项目与前一行元素的宽度相同?

使用 JavaScript 将 CSS 添加到 ?

Bootstrap 3 - 在每个网格列之后打印布局和中断

如何将 bootstrap 列高设为 100% 行高?

填充剩余的垂直空间 - 仅 CSS

如何在 iOS 上获取带有 CSS 溢出的滚动条

表格溢出时水平滚动

css 中的 clearfix 类有什么作用?

使用 HTML data-attribute 设置 CSS background-image url

CSS中伪元素前的&是什么意思?