Gekapselte Stile im Shadow DOM
Schreiben Sie CSS, das nur Elemente innerhalb des Shadow-Trees beeinflusst
Gekapselte Stile im Shadow DOM ist eine kostenlose HTML 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 HTML Academy-Lernpfads, und dein Fortschritt wird über Web und CoddyKit-App synchronisiert. Der HTML Academy-Kurs umfasst insgesamt 4 Lektionen.
CSS-Kapselung standardmäßig
Jede <style>-Regel innerhalb eines Shadow Root gilt nur innerhalb dieses Roots. p { color: red } in einem Shadow Tree färbt nur Absätze innerhalb dieses Shadow Tree – Absätze im Hauptdokument bleiben unverändert, und Styles aus dem Hauptdokument reichen nicht in den Shadow Tree hinein.
Warum Kapselung wichtig ist
Die Kapselung beseitigt das Problem globaler CSS-Regeln, das große Anwendungen seit Jahrzehnten begleitet. Die Styles einer Komponente können nicht versehentlich durch Site-CSS überschrieben werden, und die Komponente kann die Website nicht unbeabsichtigt beeinträchtigen. Die Grenze ist durch die Spezifikation festgelegt, nicht durch eine Konvention.
Die Pseudoklasse :host
Stylen Sie den Host innerhalb des Shadow Tree mit :host. Verwenden Sie :host(selector), um den Gültigkeitsbereich anhand eines Selektors einzuschränken: :host([open]) { display: block; } trifft nur dann auf den Host zu, wenn das open-Attribut vorhanden ist.
Vererbte Eigenschaften überschreiten die Grenze weiterhin
Vererbte CSS-Eigenschaften (color, font-family, line-height) überschreiten die Shadow-DOM-Grenze weiterhin durch Vererbung. Eine Einstellung body { color: blue } im Dokument färbt auch den Text im Shadow Tree blau, sofern der Shadow Tree dies nicht ausdrücklich überschreibt. Das ist ein Vorteil: Typografie-Standards bleiben konsistent.
CSS Custom Properties durchdringen die Grenze
Custom Properties, also CSS-Variablen, werden durch Shadow Roots vererbt. Dadurch sind sie die etablierte Methode, um eine Theming-API für eine Komponente bereitzustellen: Deklarieren Sie --card-bg: var(--surface, white) innerhalb des Shadow Tree und lassen Sie Nutzer --surface auf dem Host überschreiben.
/* Shadow */
:host {
background: var(--card-bg, white);
}
/* Page */
my-card {
--card-bg: #f3f4f6;
}::part für externes Styling
Markieren Sie ein Element innerhalb des Shadow Tree mit part="name", und Nutzer können es mit my-card::part(name) { ... } stylen. Verwenden Sie Parts als individuelle Styling-Schnittstellen, während der größte Teil des Shadow Tree gekapselt bleibt.
Adopted Stylesheets
shadowRoot.adoptedStyleSheets = [sheet] verwendet ein CSSStyleSheet in mehreren Shadow Roots gemeinsam und vermeidet dadurch wiederholtes Parsen von <style>. Erstellen Sie Stylesheets mit new CSSStyleSheet() und sheet.replaceSync(cssText). Das bringt in Designsystemen einen großen Performancegewinn.
Reihenfolge der Deklarationen
Platzieren Sie <style>-Tags ganz oben im innerHTML des Shadow Tree, damit die Styles vor dem restlichen Aufbau des DOM geparst werden. So vermeiden Sie das kurze Aufblitzen ungestylter Inhalte, das auftritt, wenn Styles beim Parsen zu spät eintreffen.
:host-context für Regeln anhand von Vorfahren
:host-context(.dark-mode) :host stylt den Host anhand eines Vorfahren-Selektors außerhalb des Shadow Tree. Das ist nützlich, um Komponenten anhand einer Klasse auf einem übergeordneten Wrapper zu themen. Die Browserunterstützung ist gut, sollte aber in Ihrer Zielmatrix überprüft werden.
Globales Zurücksetzen bleibt außerhalb
Dokumentweite CSS-Resets, etwa Ränder auf body oder box-sizing, wirken sich nicht auf Shadow Trees aus. Wenden Sie benötigte Resets in jedem Shadow Root erneut an oder teilen Sie sie über ein konstruiertes Stylesheet, das in jede Komponente übernommen wird.
Shadow-Styles debuggen
Chrome DevTools zeigt Shadow Roots im Elements-Panel unter „#shadow-root (open)“ an. Sie können Shadow-Styles wie jedes andere CSS untersuchen, bearbeiten und aktivieren oder deaktivieren, einschließlich der :host-Pseudoklasse und von ::part-Regeln.
Wissenscheck
Warum sind CSS Custom Properties, also Variablen, die bevorzugte Methode zum Theming einer Shadow-DOM-Komponente?
Zusammenfassung
Der Shadow DOM kapselt Styles in beide Richtungen. Stylen Sie den Host mit :host, stellen Sie über vererbte CSS Custom Properties Theming-Schnittstellen bereit, machen Sie einzelne Elemente mit ::part für das Styling zugänglich, teilen Sie Stylesheets mit adoptedStyleSheets und wenden Sie Resets in jedem Shadow Root erneut an, da dokumentweite CSS-Regeln die Grenze nicht überschreiten.
Häufig gestellte Fragen
Ist die Lektion „Gekapselte Stile im Shadow DOM“ kostenlos?
Ja — der vollständige Text von „Gekapselte Stile im Shadow DOM“ ist hier im Web kostenlos zu lesen. Um sie interaktiv zu üben (integrierter Code-Editor und 24/7 KI-Tutor) und den Rest des HTML Academy-Kurses freizuschalten, upgrade auf CoddyKit PRO. Der HTML Academy-Kurs umfasst insgesamt 4 Lektionen.
Was lerne ich in „Gekapselte Stile im Shadow DOM“?
Schreiben Sie CSS, das nur Elemente innerhalb des Shadow-Trees beeinflusst Du übst HTML 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 HTML Academy zu starten?
Keine Vorkenntnisse erforderlich. HTML 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 „Gekapselte Stile im Shadow DOM“?
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 HTML Academy-Lektion Code schreiben und ausführen?
Ja. Jede HTML 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
- attachShadow und Shadow Root
- Slot-Elemente zur Inhaltsverteilung
- Gekapselte Stile im Shadow DOM
- Part und Exportparts für externe Formatierung