#selector-max-type

限制一个选择器中类型选择器的数量

    a {}
/** ↑
 * 这种选择器 */

此规则在计算类型选择器的数量之前先解析选择器嵌套。选择器列表中的每个选择器都将单独计算。

:not() 伪类的内容也是单独计算的。此规则将其参数视为一个独立的选择器,结果不计入整个选择器的总数。

#选项

int:允许的最大类型选择器数量。

例如,使用 2

以下模式被视为违规:

div a span {}
div a {
  & span {}
}
div a {
  & > a {}
}

以下模式被视为违规:

div {}
div a {}
.foo div a {}
div.foo a {}
/* 选择器列表中的每个选择器都将单独计算 */
div,
a span {}
/* `span` 在 `:not()` 里面,所以它是单独计算的 */
div a .foo:not(span) {}

以下模式被视为违规:

#可选的辅助选项

#ignore: ["child", "compounded", "descendant", "next-sibling"]

#"child"

不计算子类型选择器。

例如,使用 2

以下模式被视为违规:

div span > a {}
#bar div span > a {}

#"compounded"

不计算复合类型选择器————即与其他选择器链接的类型选择器。

例如,使用 2

以下模式被视为违规:

div span a.foo {}
div span a#bar {}

#"descendant"

不计算后代类型选择器。

例如,使用 2

以下模式被视为违规:

.foo div span a {}
#bar div span a {}

#"next-sibling"

不计算紧邻兄弟类型选择器。

例如,使用 2

以下模式被视为违规:

div a + span {}
#bar + div + span + a + span {}

#ignoreTypes: ["/regex/", /regex/, "string"]

给定:

["/^my-/", "custom"]

例如,使用 2

以下模式被视为违规:

div a custom {}
div a my-type {}
div a my-other-type {}