Использование :not()
«свободно» в цепочке селекторов редко имеет смысл, соответственно. не приведет к желаемому результату - потому что если разрешен любой произвольный уровень элементов между ними, обычно есть тот, который не соответствует селектору :not()
, и поэтому снова делает весь селектор соответствующим.
Это больше полезно в ситуациях, когда вы можете «пригвоздить» его к определенной позиции c - как, например,
body > :not(header) div
Это затронет все div
, которые находятся внутри элемента контейнера это само по себе прямое потомство тела, а не типа header
.
Но тогда вы не можете go с body > :not(header) div, body > :not(footer) div
снова - потому что все div тоже не будут в header
, или не в footer
(не может быть в обоих одновременно.)
Таким образом, вам придется применять два «ограничения» одновременно:
body > :not(header):not(footer) div
Это влияет на все div, которые являются потомками тела ребенка, , если , что сам ребенок не является header
и не footer
.