Heim > Web-Frontend > CSS-Tutorial > Wie kann ich mithilfe von CSS ein Element basierend auf dem Status eines anderen Elements auswählen?

Wie kann ich mithilfe von CSS ein Element basierend auf dem Status eines anderen Elements auswählen?

DDD
Freigeben: 2024-12-29 17:37:15
Original
904 Leute haben es durchsucht

How Can I Select an Element Based on Another Element's State Using CSS?

Wie wähle ich mit CSS ein Element basierend auf dem Status eines anderen Elements auf der Seite aus?

Einführung

CSS bietet grundsätzlich keine Möglichkeit, ein Element ausschließlich auf der Grundlage des Zustands eines anderen Elements auszuwählen. Durch die Kombination einfacher Selektoren, Kombinatoren und der übergeordneten Beziehung zwischen Elementen ist es jedoch möglich, in bestimmten Szenarien ein begrenztes elementübergreifendes Targeting zu erreichen.

Strukturelle Beziehungen und einfache Selektoren

CSS-Selektoren repräsentieren die Struktur und den Zustand von Elementen in einem Dokumentbaum. Einfache Selektoren wie Typselektoren, Attributselektoren und Pseudoklassen identifizieren einzelne Elemente anhand ihrer Eigenschaften. Zum Beispiel:

div[data-status~="finished"]
Nach dem Login kopieren

Kombinatoren und Beziehungen

Kombinatoren wie >, und ~ definieren Beziehungen zwischen Elementen. Zum Beispiel > stellt eine untergeordnete Beziehung dar, bezeichnet ein benachbartes Geschwister und ~ wählt alle Geschwister aus. Somit können wir Folgendes konstruieren:

section > div[data-status~="finished"]
Nach dem Login kopieren

Einschränkungen vorhandener Selektoren

Obwohl es Kinder- und Geschwisterkombinatoren gibt, fehlen Selektoren 3 inverse oder Großelternselektoren. Dies macht es unmöglich, Elemente direkt basierend auf dem Status nicht verwandter Elemente auszuwählen, wie im Beispiel:

<section>
    <div data-status="finished"></div>
    <section>
        <div>
Nach dem Login kopieren

Pseudo-Element-Hierarchie und dynamische Klassen

Clever Die Verwendung einer Pseudoelementhierarchie und einer dynamischen Klassenmanipulation kann manchmal Workarounds für das elementübergreifende Targeting bieten. Diese Techniken sind jedoch begrenzt und erfordern erheblichen Code.

Mögliche Lösung in CSS4: :has()

In zukünftigen CSS-Iterationen wie CSS4 gilt Folgendes: Die Pseudoklasse has() kann verwendet werden, um Elemente basierend auf ihrer Beziehung zu bestimmten Teilbäumen auszuwählen. Dies würde eine Möglichkeit bieten, die aktuellen Einschränkungen zu überwinden:

section:has(> div[data-status~="finished"]) + section > div.blink
Nach dem Login kopieren

Das obige ist der detaillierte Inhalt vonWie kann ich mithilfe von CSS ein Element basierend auf dem Status eines anderen Elements auswählen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage