CSS Kaskadierung
An einem Punkt wird es dazu kommen, dass mehrerere CSS-Regeln das gleiche Element ansprechen.
index.html
style.css
In diesen Fällen stellt sich die Frage: Welche CSS Regel «gewinnt» und wird auf das angesteuerte Element angewendet? Dies wird nicht einfach dem Zufall überlassen, sondern über einen Mechanismus namens «Cascading» oder Kaskadierung bestimmt.
Kaskadierung
CSS ist ein Akronym für *Cascading Style Sheet*. Bei der Kaskadierung geht es darum, dass der Style einmal gestalteter Elemente an anderer Stelle überschrieben werden kann.
Beispiel: Ein Link bekommt generell eine bestimmte Farbe, in der Navigation soll sie aber mit einer anderen Farbe überschrieben werden.
Es entscheiden drei Faktoren darüber, welche CSS-Regel «gewinnt»:
Wichtigkeit
Spezifizierung
Platzierung / Reihenfolge
Wichtigkeit
In CSS kann man mit einem Schlüsselwort sicher stellen, dass einige Deklarationen immer wichtiger sind als andere, also immer «gewinnt»: !important
.
index.html
style.css
Im oben gezeigten Beispiel wird die Schrift schwarz angezeigt, da diese CSS-Regel mit der Syntax !important
deklariert wurde.
WICHTIG: Es macht nur Sinn diese Syntax einzusetzen, wenn man absolut keine andere Wahl hat. Diese Syntax ändert nähmlich die Art und Weise komplett, wie die Logik der Kaskadierung normalerweise funktioniert. Die Notwendigkeit, !important
zu verwenden, ist meist ein Hinweis auf schlecht strukturierten CSS-Code.
Spezifizierung
Eine CSS-Regel ist umso stärker, desto spezifischer der Selektor definiert wurde.
Typen-Selektoren (
p
) haben die niedrigste Spezifizierung und sind deshalb am schwächsten.class
-Selektoren (.red
) haben eine höhere Spezifizierung und sind deshalb stärker als Typen-Selektoren.id
-Selektoren (#help
) haben die höchste Spezifität und sind deshalb stärker als Typen- undclass
-Selektoren.Verschachtelte Selektoren haben eine höhere Spezifizierung als nicht verschachtelte:
Platzierung / Reihenfolge
Sind sowohl Wichtigkeit und Spezifizierung von zwei Selektoren identisch, entscheidet schlussendlich die Platzierung. Die Regel, die als letztes kommt, überschreibt die vorherigen.
🛠️ Aufgabe
Versuche nun mit Hilfe der Kaskadierung eine CSS-Regel des paper.css
zu überschreiben. Färbe dazu den Schatten (box-shadow
) des Papiers blau.
Last updated
Was this helpful?