CSS/Selektoren/has()

Aus SELFHTML-Wiki
CSS‎ | Selektoren(Weitergeleitet von CSS/Selektoren/has)
Wechseln zu: Navigation, Suche

Der has()-Selektor ist eine Pseudoklasse und dient dazu, ein Element nur dann zu selektieren, wenn es Nachfahren-Elemente bzw. Geschwister-Elemente besitzt, auf die einer der innerhalb von :has() angegebenen relativen Selektoren zutrifft.

Syntax
:has(selektorliste)
Beispiel
<style>
   ol > li:only-child {
      border: thin solid red; 
   }

   ol:has(> li:only-child) {
      border: thin solid blue; 
   }
</style>

<!-- später dann im Dokument -->
<ol>
   <li>Hallo Selfhtml</li>
</ol>
Der Selektor der ersten Regel trifft auf li-Elemente, die das einzige Kind einer <ol>-Liste sind. Die border-Eigenschaft wird für das Listenelement gesetzt, nicht für die Liste selbst, d.h. der Rahmen enthält den padding-Bereich der Liste nicht.


Die zweite Regel hingegen selektiert <ol>-Elemente, die ein <li>-Element als einziges Kind haben. Die hier gesetzte border-Eigenschaft umfasst die vollständige Liste, auch den padding-Bereich.

Im Ergebnis gibt es also einen blauen Rahmen und einen etwas eingerückten roten Rahmen.
Beachten Sie: :has() ist seit Mitte 2022 in vielen Browsern, seit Dezember 2023 auch im Firefox verfügbar.

Siehe auch

Weblinks