CSS селектор .class-xyz: не (.class-xyz) когда-либо совпадает? - PullRequest
0 голосов
/ 15 апреля 2020

При наличии любого CSS с селектором вроде:

.class-xyz:not(.class-xyz) {
  ...
}

Возможно ли, что он когда-либо соответствует любому элементу?

Как насчет дополнения его такими вещами, как ::after, ::placeholder и так далее?

Мое намерение состоит в том, чтобы упростить кучу огромных CSS листов с множеством селекторов, подобных этому.

1 Ответ

3 голосов
/ 15 апреля 2020

Этот селектор не будет соответствовать ни одному элементу, независимо от пространства имен (поскольку, даже при наличии пространств имен, внешнее .class-xyz представляет пространство имен по умолчанию, а то, что внутри отрицания, всегда учитывает то же пространство имен, что и внешний селектор).

Поскольку этот селектор не будет соответствовать ни одному элементу, из этого следует, что ни один псевдоэлемент не будет сопоставлен. Для применения псевдоэлемента элементы должны быть сопоставлены в первую очередь.

Если вы хотите sh скрыть правило CSS, не удаляя правило напрямую или не изменяя исходную часть элемента. селектор, более короткий способ сделать это с использованием псевдокласса отрицания будет :not(*) (или, если пространства имен присутствуют, :not(*|*)). Этот вариант использования явно указан в уровне 3 и 4 specs.

Но самый короткий и самый ясный способ скрыть CSS Правило, безусловно, это закомментировать.

...