3.6 Kombinatoren und Pseudoklassen am Beispiel eines Navigationsmenus
In den folgenden Abschnitten werden wir den Navigationsbereich Schritt für Schritt so formatieren, dass er am Ende als horizontale Menüzeile mit einem grünen Hintergrund und weißer Schrift erscheint. Befindet sich der Mauszeiger über einem Menüpunkt, wird dieser grafisch hervorgehoben, indem sein Hintergrund weiß und seine Schriftfarbe grün wird.
3.6.1 Navigationsbereich
Das HTML-Element nav
kennzeichnet den Navigationsbereich der Webseite.
Aufgabe 3-5: Formatieren des Navigationsbereichs
Formatierungsvorgaben
Die folgenden Formatierungsvorgaben sollen für alle Webseiten unseres Webauftritts gelten:
HTML-Element | Formatierung |
---|---|
nav |
|
Vorschau
LösungLösung
3.6.2 Navigationsmenü
Die Struktur eines Navigationsmenüs ähnelt dem einer Aufzählungsliste ul
. Bei einem einfachen Menü mit nur einer Ebene nehmen die Listenelemente li
dabei jeweils einen Menüpunkt auf, der wiederum in Form eines Hyperlinks a
realisiert wird:
Bevor wir die Aufzählungsliste (ul
), die unser Navigationsmenü beinhaltet, formatieren können, benötigen wir für die entsprechende CSS-Regel einen geeigneten Selektor.
Auf einen einfachen Typselektor ul
können wir dabei nicht zurückgreifen, da in diesem Fall alle Aufzählungslisten entsprechend unserer Regel formatiert werden würden. Daher müssen wir dafür sorgen, dass unsere CSS-Regel nur für die ul
-Elemente gilt, die sich innerhalb eines nav
-Elements befinden. Auf diese Weise können wir auf die Zuweisung einer ID und die Verwendung eines ID-Selektors verzichten.
Kombinatoren
Soll eine CSS-Regel nicht für alle Elemente eines bestimmten Typs oder einer bestimmten Klasse gelten, kann die Selektion auf diejenigen Elemente beschränkt werden, die zu einem anderen Element in einer bestimmten Beziehung stehen:
Selektor | Bedeutung | Kombinator |
---|---|---|
nav ul |
Ein ul -Element wird selektiert, wenn es sich innerhalb eines nav -Elements befindet.
|
Leerzeichen (Nachfahre) |
nav > ul |
Ein ul -Element wird selektiert, wenn sein Elternelement ein nav -Element ist.
|
> (Kind)
|
Ist eine Selektion der gewünschten Elemente mit Hilfe von Kombinatoren möglich, kann auf die Vergabe einer ID bzw. Klasse verzichtet werden.
Dies ist jedoch nicht immer sinnvoll. Werden im Selektor mehrere Kombinatoren benötigt, um ein bestimmtes Element auszuwählen, oder ist das Element selbst wieder Ausgangspunkt für die Auswahl anderer Elemente, werden die entsprechenden Selektoren sehr komplex. Verständlicher ist in diesen Fällen ein ID-Selektor oder Klassenselektor mit einem Namen, der direkt auf das betreffende Element schließen läßt.
Aufgabe 3-6: Formatieren des Navigationsbereichs
Formatierungsvorgaben
Die folgenden Formatierungsvorgaben sollen für alle Webseiten unseres Webauftritts gelten:
HTML-Element | Formatierung |
---|---|
nav ul |
|
Vorschau
LösungLösung
3.6.3 Menüelemente
Die einzelnen Menüpunkte werden in Form eines Hyperlinks a
in jeweils ein Listenelement li
eingebettet.
Aufgabe 3-7: Formatierung der Menüelemente I
Formatierungsvorgaben
Die folgenden Formatierungsvorgaben sollen für alle Webseiten unseres Webauftritts gelten:
HTML-Element | Formatierung |
---|---|
Listenelemente li , die sich innerhalb des Navigationsbereichs nav befinden.
|
|
Ein Hyperlink a , der sich innerhalb des Navigationsbereichs nav befindet.
|
|
Vorschau
LösungLösung
Nun soll das letzte Menüelement so formatiert werden, dass rechts von ihm ein Abstand von 50 Pixel eingefügt wird. Für die entsprechende CSS-Regel benötigen wir einen Selektor, der im Navigationsbereich nav
das letzte Listenelement li
auswählt.
Jede Pseudoklasse steht für ein besonderes Kriterium, das ein Element erfüllen muss, um selektiert zu werden. In der Regel wird eine Pseudoklasse mit einem anderen Selektor kombiniert (vgl. Beispiele in Abb. 3-40).
Pseudoklasse | Beispiel | Erläuterung des Beispiels |
---|---|---|
:last-of-type | li:last-of-type |
Selektiert jedes li -Element, welches das letzte li -Element seines Elternelements ist.
|
:nth-of-type(n) | li:nth-of-type(2) |
Selektiert jedes li -Element, welches das zweite li -Element seines Elternelements ist.
|
:link | a:link |
Selektiert jedes a -Element, dessen Ziel noch nicht besucht worden ist.
|
:visited | a:visited |
Selektiert jedes a -Element, dessen Ziel bereits besucht worden ist.
|
:hover | img:hover |
Selektiert das img -Element, welches gerade mit dem Mauszeiger berührt wird.
|
Eine Übersicht über alle Pseudoklassen bietet unter anderem w3schools.com (gegen Ende der Webseite).
Aufgabe 3-8: Formatierung der Menüelemente II
Formatierungsvorgaben
Die folgenden Formatierungsvorgaben sollen für alle Webseiten unseres Webauftritts gelten:
HTML-Element | Formatierung |
---|---|
Das letzte Listenelement li , das sich innerhalb des Navigationsbereichs nav befindet.
|
Abstand rechts vom Element: 50 Pixel |
Ein Hyperlink a , der sich innerhalb des Navigationsbereichs nav befindet und gerade mit dem Mauszeiger berührt wird.
|
|