本文へスキップ

selector-max-id

セレクター内のIDセレクターの数を制限します。

    #foo {}
/** ↑
* This type of selector */

このルールは、IDセレクターの数をカウントする前に、ネストされたセレクターを解決します。 セレクターリスト内の各セレクターは個別に評価されます。

:not()擬似クラスも個別に評価されます。このルールは、引数を独立したセレクターであるかのように処理し、その結果は、セレクター全体の合計にはカウントされません。

messageセカンダリオプションは、このルールの引数を受け入れることができます。

オプション

int: 許容される最大ユニバーサルセレクター数。

例えば、2の場合

次のパターンは問題と見なされます

#foo #bar #baz {}
#foo #bar {
& #baz {}
}
#foo #bar {
& > #bar {}
}

次のパターンは問題と見なされません

#foo {}
#foo #bar {}
.foo #foo {}
#foo.foo #bar {}
/* each selector in a selector list is evaluated separately */
#foo,
#baz #quux {}
/* `#bar` is inside `:not()`, so it is evaluated separately */
#foo #bar:not(#baz) {}

オプションのセカンダリオプション

checkContextFunctionalPseudoClasses: ["/regex/", /regex/, "non-regex"]

指定されたカスタム関数擬似クラス内で、評価コンテキストを提供するセレクターをチェックします。

このオプションは、ignoreContextFunctionalPseudoClassesよりも優先順位が高くなります。

以下の場合

[":--foo"]

次のパターンは問題と見なされます

:--foo(#foo #bar #baz) {}

次のパターンは問題と見なされません

:--foo() {}

ignoreContextFunctionalPseudoClasses: ["/regex/", /regex/, "non-regex"]

関数擬似クラス内で、評価コンテキストを提供するセレクターを無視します。

以下の場合

[":not", "/^:(h|H)as$/"]

次のパターンは問題と見なされます

a:is(#foo) {}

次のパターンは問題と見なされません

a:not(#foo) {}
a:has(#foo) {}