zum Artikelanfang springen

Kombinatoren

Diese Gruppe der Selektoren ist schon seit längerem definiert – nur der Name ist neu.

Bereits seit CSS1 und CSS2 werden zum Beispiel Kind- und Nachfahren-Selektoren beschrieben. Erst in CSS3 wurde der Begriff „Kombinator” (combinator) eingeführt, um die Zusammenhänge anschaulicher zu machen. Zusätzlich wurde ein weiterer Kombinator eingeführt (siehe Beispiele weiter unten).

In der Regel erfordern Selektoren, dass im Quellcode jedem gesondert anzusprechenden Element eine eigene ID oder Klasse zugewiesen wird, was den Quellcode vergrößert und schwieriger zu pflegen macht. Kombinatoren hingegen werten die Struktur (den hierarchischen Aufbau) eines Dokuments aus.

Betrachten wir die einzelnen Kombinatoren etwas genauer.

Nachfahren-Kombinator

Pattern Meaning Description CSS
E F an F element descendant of an E element Descendant combinator 1

Hier werden alle Kinder und Kindeskinder (Nachfahren) eines Elements ausgewählt.

Ein klassisches Beispiel wäre #menue a {...}, in dem also alle Links innerhalb eines Menü-Containers angesprochen werden.

Möchte man nun Links in einem anderen Bereich wie zum Beispiel einem Teaser gesondert auszeichnen, kann man dies mit .teaser a {...} erreichen, ohne eine Klasse zu vergeben.

Kind-Kombinator

Pattern Meaning Description CSS
E > F an F element child of an E element Child combinator 2

Dieser Kombinator beschreibt eine direkte Eltern-Kind-Beziehung. Die Anweisung body > p beträfe also nur Absätze, die unmittelbar auf body folgen, nicht aber Absätze, die in weiteren definierten Containern enthalten sind.

<body>
 <p>...</p>
  <div id="content">
   <p>...</p>
  </div>
 <p>...</p>
Der Absatz innerhalb des Containers mit der ID #content wird von der Anweisung body > p nicht erfasst.

Benachbarte-Geschwister-Kombinator

Pattern Meaning Description CSS
E + F an F element immediately preceded by an E element Adjacent sibling combinator 2

Dieser Kombinator erfasst Elemente, die unmittelbar aufeinander folgen. Will man zum Beispiel den ersten Absatz, der auf eine Hauptüberschrift folgt, immer gefettet darstellen, könnte man folgendes anweisen:

h1 + p { font-weight: bold; }

Allgemeiner-Geschwister-Kombinator

Pattern Meaning Description CSS
E ~ F an F element preceded by an E element General sibling combinator 3

Dies ist der mit CSS3 neu eingeführte Kombinator. Sich hierfür einen Anwendungszweck vorzustellen, fällt schon etwas schwerer, schauen wir uns aber ein einigermaßen willkürliches Beispiel an:

p ~ ul {
background-color: #900;
color: #fff;
}

Diese Regel spricht alle ul-Elemente an, die Geschwister eines p-Elements sind, beide müssen also zum selben Eltern-Element gehören. Zwischen den Geschwistern dürfen andere Elemente auftauchen.

Seitenanfang



(c) 2009 e-workers
http://www.css-cafe.de/
mailto: info@css-cafe.de