Wuhu. Selektoren sind ein härterer Brocken als man glauben möchte.
Beispiele zur Nutzung der Selektoren
Was sind Selektoren?
Informationen in HTML bzw. XML-Dokumenten befinden sich innerhalb von Elementen. Diese Elemente werden verschachtelt, was man als Baumstruktur abbilden kann. Selektoren für Stilangaben sind eine Art vereinfachte Wegbeschreibung zu bestimmten Elementen in dieser Baumstruktur. Ein Selektor kann ein bestimmtes aber auch viele gleichartige Elemente auswählen. Diese Elemente erhalten dann die Eigenschaften, die dem Selektor zugewiesen wurden.
Beispiel:
Den vorliegenden Code bezeichnet man als Regel. Eine Regel beginnt mit einem Selektor. Nach dem Selektor können, von einem Komma getrennt, weitere Selektoren stehen. Dabei sind nicht nur eifache Selektoren möglich, sondern auch Kombinationen aus verschiedenen Selektoren.
Nach dem Selektor bzw. der Liste der Selektoren folgen innerhalb geschweifter Klammern Eigenschaften, denen ein Wert zugewiesen wird. Diese Eigenschaften werden auf jedes Element in der HTML-Baumstruktur angewendet, die von den Selektoren dieser Regel betroffen sind.
Im folgendem eine Übersicht aller Selektoren - mit Ausnahme von Pseudoklassen und -elementen -, die in CSS 2.1 gültig sind.
Einfache Selektoren
Ein einfacher Selektor ist ein Selektor, der ein Element unabhängig von seiner Position in der Baumstruktur des Dokuments auswählt.
* - Der Universalselektor
Eigenschaften, die für diesen Selektor definiert werden, gelten für alle Elemente in einem Dokument.
(Wobei ich anmerken muss, dass man damit keine Kommentare oder HTML-Elemente wie <title> sichtbar machen kann.).
Beispiel:
Diese so genannte Leerraumrücksetzung sorgt dafür, dass keines der Elemente über Außen- und Innenabstände verfügen.
Das hat einerseits den Vorteil, dass Regeln verschiedener Browser dem Gestaltungsprozess nicht im Wege stehen. Andererseits bringt es aber auch den Nachteil, dass viele Standardelemente mit neuen Formatierungen versehen werden müssen, was die Stildatei aufbläht.
Hinweis: Im Internet Explorer 7 werden von diesem Selektor fälschlicherweise auch Kommentare ausgewählt. Diese kann man z.B. durch Angaben von display- und Höhen- oder Breitenangaben sichtbar machen.
E - Der Elementselektor
Wird dem einfachen Selektor E eine Eigenschaft zugewiesen, so erhalten alle E-Elemente im Dokument diese Eigenschaft.
Beispiel anhand einer Überschrift:
Diese Regel besagt, dass alle h1-Elemente als Blockelement dargestellt werden, eine Schriftgröße von 2em sowie oben und unten einen Außenabstand von einem halben em besitzen.
Das entspricht etwa der Voreinstellung Zahlreichen Browser, welche beliebig verändert werden kann.
[attr] - Der erste Attributselektor
Es ist möglich, bestimmte Eigenschaften nur den Elementen zuzuweisen, die ein bestimmtes Attribut besitzen.
Beispiel:
Diese Regel würde alle Elemente hervorheben (mit einem leuchtend grünen Rahmen), die verweissensitiv sind, z.B. Bilder, da nur bei verweissensitiven Elementen das usemap-Attribut gesetzt wird.
[attr=val] - Der zweite Attributselektor
Eine speziellere Variante des Attributselektors erlaubt es, nur die Elemente zu formatieren, die über ein Attribut mit einem bestimmten Wert verfügen.
Beispiel:
Diese Regel formatiert nur Formulare, die über die POST-Methode versendet werden, mit einer grünen Hintergrundfarbe.
Ein Element wird nur dann formatiert, wenn der Wert des Attributs identisch mit dem Wert des Selektors ist. Es ist auch möglich, den Wert eines Attributs im Selektor mit doppelten oder einfachen Anführungszeichen zu versehen. Das ist vor allem dann wichtig ist, wenn der Attributwert Leerzeichen oder andere spezielle Zeichen enthält.
[attr~=val] - Der dritte Attributselektor
Der Selektor [attr~=val] wählt nur Elemente aus, wenn diese im Attribut „attr“ den Wert „val“ als Wort enthalten.
Beispiel (Stilangabe):
Diese Regel selektiert in diesem Beispiel alle drei Tabellen, weil das Wort „Statistik“ durch ein normales Leerzeichen bzw. die Anführungszeichen des Attributs vom Rest des Attributs getrennt ist.
Beispiel (HTML):
[attr|=val] - Der vierte Attributselektor
Dieser Selektor wählt alle Elemente aus, die über ein „attr“-Attribut verfügen, welches mit dem Wert „val“ beginnt und dieser Wert mit einem „-“ vom Rest des Wertes abgetrennt ist.
Beispiel (Stilangabe):
Diese Regel formatiert jeden Verweis mit einer blauen Hintergrundfarbe, wenn das Verweisziel in deutscher Sprache vorliegt.
Beispiel (HTML):
# - Der ID-Selektor
Der Selektor „#name“ formatiert genau das Element im Dokument, das als Wert des id-Attributs „name“ enthält.
Beispiel (Stilangabe): Beispiel (HTML):
Als Attributselektor kann man ID-Selektoren wie folgt ausdrücken: „#name“ = „[id=name]“.
. - Der Klassenselektor
Ein Selektor „.name“ formatiert ein Element, wenn dieses zur Klasse „name“ gehört. In HTML und XHTML werden Klassennamen im class-Attribut vergeben. In XML-Dialekten kann das Attribut für Klassenzugehörigkeit einen anderen Namen besitzen.
Beispiel (Stilangabe): Beispiel (HTML):
Als Attributselektor kann man Klassenselektoren in (X)HTML wie folgt ausdrücken: „.name“ = „[class=name]“.
Kombinierte Selektoren
E F - Der Nachfahrenselektor
Um ein F-Element formatieren zu können, das sich irgendwo innerhalb des E-Elements befindet, kann man den Nachfahrenselektor verwenden. Das ist ein Selektor der aus zwei einfachen Selektoren - getrennt von einem Leerzeichen - besteht.
Das ist wohl der wichtigste Selektor!
Beispiel (Stilangabe):
Diese Regel formatiert alle Verweise, die sich innerhalb eines Elements mit der ID „navigation“ befinden. Dabei spielt es keine Rolle, ob das a-Element ein Kind oder ein Nachfahre dieses Elements ist.
Beispiel (HTML):
E > F - Der Kindselektor
Es ist auch möglich nur Elemente zu formatieren, die Kinder eines Elements sind. Das erreicht man, wenn man das Elternelement als Selektor mit einem „größer als“ Zeichen vom Kindelement trennt.
Beispiel (Stilangabe):
Diese Regel formatiert alle Listenpunkte der Klasse „aktiv“ mit fetter Schrift, nicht jedoch andere Elemente mit dieser Klasse.
Beispiel (HTML):
Bei der Verwendung dieses Selektor sollte man darauf achten, keine Kette von Selektoren zu erstellen, wo statt „E > A > F“ ein „E F“ genügen würde.
E + F - Der Folgeselektor
Nicht immer sind die Kinder und Nachfahren eines Elements relevent. Es kommt auch vor, dass die Nachbarn eines Elements von bedeutung sind.
Beispiel (Stilangabe):
Diese Regel formatiert die Schrift in allen Absätzen fett, die auf einen Absatz folgen.
Beispiel (HTML):
Kombinationen anderer einfacher Selektoren
Den Attribut-, ID-, und Klassenselektoren kann ein einfacher Selektor vorgestellt werden, wodurch sich diese auf bestimmte Elemente spazialisieren lassen.
Beispiel:
Außerdem sind bestimmte einfache Selektoren identisch mit kombinierten Selektoren:
[att] ist identisch zu *[att], da alle Elemente mit diesem Attribut selektiert werden.
#name und .name sind identisch zu *#name und *.name, da alle Elemente mit dieser ID oder Klasse ausgewählt werden.