Ответ 1
Селектора уровня 3 не допускают ничего более простого простого селектора в псевдо-классе :not()
. Как селектор jQuery, он работает, потому что jQuery расширяет функциональность :not()
, чтобы разрешить любой селектор (например, метод .not()
).
Однако ваш второй синтаксис является одним из предлагаемых улучшений до :not()
в Селекторах 4 и работает в соответствии с вашим первым. Несмотря на то, что пример (показанный на этом письме) показывает цепочку селекторов :not()
, предложение говорит:
Псевдокласс класса отрицания: not (X) - это функциональная нотация, в которой в качестве аргумента выбирается селекторный список. Он представляет элемент, который не представлен его аргументом.
Здесь список селекторов - это просто список селекторов, разделенных запятыми.
Если вам нужно отменить селекторы, содержащие комбинаторы (>
, +
, ~
, пробел и т.д., например div p
), вы не можете использовать :not()
в CSS; вам придется пойти с решением jQuery.