Jeder, der regelmäßig CSS schreibt, kennt das Problem: Mit zunehmender Komplexität werden CSS-Regeln schnell unübersichtlich. Welche Regel greift wann, und wie vermeide ich Konflikte zwischen Stilen? Genau hier setzen die beiden neuen CSS-Features @layer und @scope an, die CSS deutlich übersichtlicher und logischer gestalten. Anhand konkreter Beispiele zeige ich dir, wie das funktioniert.
Bisher wurde die Reihenfolge der CSS-Regeln und deren Spezifität (IDs, Klassen, Tags) schnell kompliziert. Regeln konnten unerwartet überschrieben werden, was oft zu Frust und chaotischem Code führte. Mit @layer gruppierst du deine CSS-Regeln in klare Schichten („Layers“), deren Priorität du selbst bestimmst:
@layer base, components, overrides;
Was bedeutet die Reihenfolge?
Hier nun das Beispiel
See the Pen Layer by uli schaeffler (@ulrischa) on CodePen.
Diese Überschrift wird orange, weil die ID-Regel (#specific-heading) aus dem Layer overrides zuletzt definiert wurde und somit höchste Priorität besitzt. Du vermeidest damit das Rätselraten um Selektor-Spezifität und sorgst für eine klare, nachvollziehbare Struktur.
Oft möchte man bestimmte CSS-Regeln nur auf spezifische Bereiche einer Seite anwenden, nicht aber auf andere. Früher war dies meist nur durch komplizierte, verschachtelte Selektoren möglich. Die neue @scope-Funktion erlaubt dir, CSS klar auf definierte Bereiche („Scopes”) deiner Seite zu begrenzen.
Hier das Beispiel:
See the Pen Scope by uli schaeffler (@ulrischa) on CodePen.
Das Ergebnis:
Verwendungszweck:
@scope hat noch nicht so eine gute Browserunterstützung wie @layer.
@layer sorgt also für klare Prioritäten und vermeidet chaotische Überschreibungen, während @scope es ermöglicht, Styles präzise auf festgelegte Bereiche anzuwenden. Beide Features machen dein CSS deutlich einfacher zu warten, übersichtlicher und weniger anfällig für Fehler.
Als erster einen Kommentar schreiben.
Schreibe einen Kommentar