Kaskade und Spezifizität

💡

Dauer: bis zu 30 Minuten

Themen:

  • Kaskade (Reihenfolge in der Anwendung der Regel)
  • Spezifizität (Der spezifischste Selektor „gewinnt“)

Ziel: Grundlegendes Verständnis der Anwendung von CSS-Regeln erhalten

👨🏻‍💻

Bei Bedarf gibt es eine kurze Wiederholung des bisher besprochenen Stoffs.

Oft werden mehrere Stylesheets verwendet und es kann auch sein, dass die Selektoren verschiedener Regeln die gleichen Elemente auswählen. In diesen Fällen stellt sich die Frage, welche CSS-Regeln auf die betroffenen HTML-Elemente angewendet werden.

Kaskade

Mit Kaskade (cascading, das „C“ in CSS) ist gemeint, dass die CSS-Regeln nacheinander angewendet werden, so wie sie in den eingebunden Stylesheets auftreten.

Dazu ein vereinfachter Merksatz:

Bei gleichstarken Selektoren hat die Regel Vorrang, die als letztes in der Reihenfolge der Anwendung ist.

Mit „gleichstark“ ist hier die Spezifizität gemeint (mehr dazu unten). Die Reihenfolge der Anwendung wird durch die Anordnung der Regeln in CSS-Dateien oder Einbindung von Stylesheets durch link-Elemente im HTML-Dokument bestimmt.

👨🏻‍💻

Einfaches Beispiel mit mehreren Styles für h1-Elemente siehe ProgContent zu Kaskade oder Codepen.

Spezifizität

Die Spezifizität (specificity) bestimmt, wie spezifisch ein Selektor ist. Dabei spielt es anders als bei der Kaskade keine Rolle, wo die Regel in der Reihenfolge der Deklarationen steht.

Auch hier wieder ein vereinfachter Merksatz:

Je spezifischer der Selektor, desto größer die Priorität dieser Regel — egal wo diese Regeln in den Stylesheets deklariert wird.

Die Spezifizität ist bei der Vielzahl der verfügbaren Selektoren ein Recht komplexes Thema, von dem wir hier nur die Grundprinzipien besprechen. Wir betrachten hier nur folgendes:

  • id-Selektoren sind stärker als class-Selektoren
  • class-Selektoren sind stärker als Elementtyp-Selektoren
👨🏻‍💻

Für ein Beispiel mit mehreren Styles siehe ProgContent zu Spezifizität oder schrittweise zeigen mit class und id-Selektoren auf Codepen.

Mehr zu den konkreten Berechnungen der Spezifizität beim Mozilla Developer Network (MDN).

CSS in style-Attributen direkt an HTML-Elementen hat immer Vorrang bzw. höchste Priorität gegenüber eingebundenen Stylesheets.

Zusammenfassung

Kaskade ergibt sich aus der Reihenfolge in der Anwendung einer Regel.

Spezifizität bedeutet, dass der spezifischste Selektor „gewinnt“ und somit eine höhere Priorität gegenüber anderen Selektoren hat, falls diese die gleichen Elemente betreffen.

Es gibt viele weitere Details in Bezug auf die Anwendung von CSS-Regeln. Für den Einstieg in die Arbeit mit CSS genügt ein grundlegendes Verständnis dieser Konzepte — insbesondere, wenn die Webanwendung nicht zu komplex ist. Im Laufe der praktischen Erfahrung mit CSS können bei Bedarf zusätzliche Aspekte vertieft werden.