Pseudoklasa CSS :has() wybiera element, który jest związany określoną relacją z elementem wskazywanym przez selektor lub selektory przekazane jako jej argument. Innymi słowy ta pseudoklasa pozwala odwoływać się do elementów nadrzędnych lub poprzednich równorzędnych na podstawie ich zawartości bądź sąsiedztwa.
Przykład użycia :has
Przykład użycia pseudoklasy :has
– wszystkie elementy p
zawierające element span
będą miały zielone pogrubione pismo.
Poniższy zrzut ekranu przedstawia wynik zastosowania tej reguły CSS.
Składnia :has
Składnia pseudoklasy :has
:
:has(lista selektorów rozdzielonych przecinkami) {...}
Parametry i przykłady użycia :has
Pseudoklasa :has()
przyjmuje listę rozdzielanych przecinkami selektorów określających warunki wyboru elementu, do którego została zastosowana, np.:
W tym przypadku wszystkie akapity zawierające element span
lub i
będą miały zielone pogrubione pismo.
Za pomocą pseudoklasy :has
można odnosić się także do elementów sąsiadujących na tym samym poziomie drzewa dokumentu z wybranym elementem, np.:
Ta reguła CSS odnosi się do wszystkich elementów p
, za którymi pośrednio lub bezpośrednio na tym samym poziomie hierarchii znajduje się element div
, a więc oba poniższe akapity będą miały zielony kolor pisma.
Natomiast w poniższym przypadku powyższa pseudoklasa nie zadziała, ponieważ element div
znajduje się na innym poziomie hierarchii niż akapity.
Przy użyciu pseudoklasy :has
można również tworzyć warunki logiczne. Jeśli jako argument przekażemy listę rozdzielanych przecinkami selektorów, to pseudoklasa wybierze każdy element spełniający którykolwiek z tych warunków, np.:
Pierwszy z tych selektorów wybierze wszystkie akapity zawierające element span
lub strong
. Natomiast drugi wybierze wszystkie akapity zawierające element span
i strong
.