CSS Academy · Lektion

@scope für begrenzte Stile

Begrenzen Sie mit der At-Regel @scope die Reichweite von CSS-Regeln auf bestimmte Teilbäume.

Lektion 3 von 413 Schritte

@scope für begrenzte Stile ist eine kostenlose CSS Academy-Lektion auf CoddyKit. Dies ist Lektion 3 von 4. Du kannst die komplette Lektion unten kostenlos lesen – dann übst du sie direkt im Browser mit einem integrierten Code-Editor und einem KI-Tutor rund um die Uhr. Sie ist Teil des CSS Academy-Lernpfads, und dein Fortschritt wird über Web und CoddyKit-App synchronisiert. Der CSS Academy-Kurs umfasst insgesamt 4 Lektionen.

Was ist @scope?

Die @scope-At-Rule (Chrome 118+, Safari 17.4+) beschränkt CSS-Regeln auf einen bestimmten Teilbaum des DOM. Regeln innerhalb von @scope werden nur auf Elemente innerhalb des deklarierten Scope-Roots angewendet und verhindern so das Übergreifen von Stilen über Komponenten hinweg.

Grundlegende Syntax

Definieren Sie einen Scope mit einem Selektor für die Scope-Root. Alle darin enthaltenen Regeln gelten nur für Nachfahren übereinstimmender Scope-Roots und nicht für das gesamte Dokument.

<div class="card">
  <div class="title">Scoped Title</div>
  <div class="body">Scoped body text &mdash; styles only apply inside .card.</div>
</div>

Scope-Root

Die Scope-Root (@scope (.card)) definiert den Einstiegspunkt. Elemente innerhalb des Scopes, die auf .title passen, werden formatiert. Elemente außerhalb von .card mit der Klasse .title bleiben unbeeinflusst – echte Style-Kapselung ohne Shadow DOM.

Scope-Begrenzung (Scope-Grenze)

Optional können Sie mit to eine Scope-Grenze definieren: @scope (.card) to (.nested-card). Die Regeln gelten innerhalb von .card, enden aber an Nachfahren von .nested-card – so werden Stile auf eine Ebene der Komponentenverschachtelung begrenzt und tiefere Instanzen ausgeschlossen.

:scope-Pseudo-Klasse innerhalb von @scope

Innerhalb eines @scope-Blocks verweist :scope auf das Scope-Root-Element selbst. @scope (.card) { :scope { border-radius: 8px; } } formatiert direkt das .card-Element, nicht seine Nachfahren.

Nähebasierte Spezifität

@scope führt eine auf Nähe basierende Spezifität ein: Wenn mehrere Scopes auf ein Element zutreffen, gewinnt die nächstgelegene übergeordnete Scope-Root – unabhängig von der Spezifität des Selektors. Dadurch wird verhindert, dass tief verschachtelte Komponentenstile von Stilen aus weit entfernten übergeordneten Scopes überschrieben werden.

@scope im Vergleich zu CSS Modules

CSS Modules erzeugen eindeutige, gehashte Klassennamen und erreichen so zur Build-Zeit einen begrenzten Geltungsbereich – eine Angelegenheit des JavaScript-Bundlers. @scope stellt den Geltungsbereich nativ im Browser her, ganz ohne Build-Tools, gehashte Namen oder frameworkspezifische Syntax – reines CSS.

@scope im Vergleich zu Shadow DOM

Shadow DOM sorgt für eine vollständige Stilisolierung – externe Styles können nicht eindringen. @scope sorgt für eine teilweise Isolierung – Styles von außen können weiterhin auf Elemente innerhalb des Geltungsbereichs angewendet werden, wenn ihre Spezifität hoch genug ist. @scope ist eine schlankere Alternative zur Kapselung von Komponenten, ohne vollständige Isolierung.

@scope mit @layer kombinieren

Kombinieren Sie @scope mit @layer, um die Kaskade feingranular zu steuern: Definieren Sie auf die Komponente begrenzte Styles in einer Komponentenebene. So verwalten Sie sowohl die Reihenfolge der Kaskade (über Ebenen) als auch den Geltungsbereich von Styles (über @scope) auf eine zusammensetzbare Weise – ganz ohne komplizierte Tricks bei der Benennung von Klassen.

Praktische Anwendungsfälle

Komponenten eines Designsystems: Begrenzen Sie alle Button-Styles mit @scope (.button-group), damit die Styles innerer Buttons niemals nach außen gelangen. Isolierung von Widgets: Begrenzen Sie die Styles eines Widgets eines Drittanbieters auf dessen Container, um Konflikte mit den globalen Styles der Seite zu verhindern.

Browserunterstützung und Fallback

@scope wird von Chrome 118+, Safari 17.4+ und Firefox 128+ unterstützt. In nicht unterstützten Browsern werden Styles innerhalb von @scope ignoriert – die Kaskade greift auf globale Styles zurück. Verwenden Sie @scope als progressive Verbesserung, wenn die Kapselung von Komponenten hilfreich, aber nicht entscheidend ist.

Wissensprüfung

Welches Problem löst @scope, das sich nur schwer mit herkömmlichen CSS-Selektoren allein lösen lässt?

Zusammenfassung

@scope begrenzt die Anwendung von CSS-Regeln auf einen deklarierten DOM-Teilbaum und ermöglicht so eine native Kapselung von Styles – ohne Shadow DOM oder das Hashing von Klassennamen durch Build-Tools. Begrenzungen des Geltungsbereichs, Spezifität durch Nähe und die Integration mit @layer machen @scope zu einem leistungsfähigen Grundbaustein für komponentenbezogene Designsysteme mit reinem CSS.

Kostenlos starten

Lerne CSS mit einem KI-Tutor — kostenlos

Schreibe und führe echten Code in deinem Browser aus, bekomme sofortige Hilfe von einem 24/7 KI-Tutor und setze dein Lernen im Web oder in der App fort.

Kurse
40
Lektionen
159

Häufig gestellte Fragen

Ist die Lektion „@scope für begrenzte Stile“ kostenlos?

Ja — der vollständige Text von „@scope für begrenzte Stile“ ist hier im Web kostenlos zu lesen. Um sie interaktiv zu üben (integrierter Code-Editor und 24/7 KI-Tutor) und den Rest des CSS Academy-Kurses freizuschalten, upgrade auf CoddyKit PRO. Der CSS Academy-Kurs umfasst insgesamt 4 Lektionen.

Was lerne ich in „@scope für begrenzte Stile“?

Begrenzen Sie mit der At-Regel @scope die Reichweite von CSS-Regeln auf bestimmte Teilbäume. Du übst CSS Academy mit praktischem Code, den du direkt im Browser ausführst, und ein 24/7 KI-Tutor beantwortet deine Fragen während du die Lektion bearbeitest.

Brauche ich Erfahrung, um CSS Academy zu starten?

Keine Vorkenntnisse erforderlich. CSS Academy auf CoddyKit ist für Anfänger bis fortgeschrittene Lernende strukturiert, sodass du hier starten oder von Anfang an beginnen und in deinem eigenen Tempo voranschreiten kannst. Dies ist Lektion 3 von 4.

Wie lange dauert die Lektion „@scope für begrenzte Stile“?

Die meisten CoddyKit-Lektionen dauern etwa 5–10 Minuten. Jede ist kompakt und interaktiv, sodass du stetig Fortschritte machst und genau dort weitermachst, wo du aufgehört hast – im Web und in der App.

Kann ich in dieser CSS Academy-Lektion Code schreiben und ausführen?

Ja. Jede CSS Academy-Lektion enthält einen integrierten Code-Editor, sodass du echten Code direkt in deinem Browser schreibst und ausführst und sofort KI-Feedback erhältst — ohne lokale Einrichtung erforderlich.

Alle Lektionen in diesem Kurs

  1. Native CSS-Verschachtelung
  2. :has()-Relationspseudo-Klasse
  3. @scope für begrenzte Stile
  4. View Transitions API
← Zurück zu CSS Academy