Pseudoklasa CSS :not() (negacji) wybiera te elementy, które nie są reprezentowane przez listę selektorów prostych (rozdzielanych przecinkami), będącą jej argumentem, np.:
Selektor użyty w tym przykładzie można odczytać tak: „W elemencie p
wybierz wszystkie elementy, oprócz elementów span
i em
”. W efekcie tylko zawartość elementu strong
będzie miała czerwony kolor.
Precyzja selektora :not()
Precyzja selektora pseudoklasy :not()
jest taka sama, jak precyzja jej najbardziej precyzyjnego argumentu, np.:
W tym przypadku tekst znajdujący się w elemencie em
będzie miał kolor zielony, ponieważ pierwszy selektor ma taką samą precyzję, jak selektor span
. Teraz spójrz na poniższy przykład:
Tutaj tekst znajdujący się w elemencie em
w powyższym kodzie HTML będzie miał kolor czerwony, ponieważ pierwszy selektor ma taką samą precyzję, jak selektor html body div p i
. Nie ma znaczenia, że na stronie nie występuje element pasujący do tego bardziej precyzyjnego selektora.
Składnia :not
Składnia pseudoklasy :not
:
:not(lista selektorów rozdzielanych przecinkami) {...}
Pseudoklasa :not()
jako argument przyjmuje tzw. niewybaczającą listę selektorów rozdzielonych przecinkami, tzn. jeśli którykolwiek z selektorów na tej liście jest nieprawidłowy, to cała lista zostaje uznana za nieprawidłową i zignorowana.
Zamiast listy selektorów można także użyć pseudoklasy :not()
kilka razy, np.
Oba powyższe selektory są równoważne i wybierają wszystkie elementy oprócz elementów em
i strong
.