1. Web
  2. CSS
  3. Reference
  4. Selectors
  5. :host

Dieser Inhalt wurde automatisch aus dem Englischen übersetzt, und kann Fehler enthalten. Erfahre mehr über dieses Experiment.

View in English Always switch to English

:host CSS-Pseudoklasse

Baseline Weitgehend verfügbar

Diese Funktion ist gut etabliert und funktioniert auf vielen Geräten und in vielen Browserversionen. Sie ist seit Januar 2020 browserübergreifend verfügbar.

Die :host CSS Pseudoklasse wählt den Shadow-Host des Shadow DOM aus, der das CSS enthält, in dem sie verwendet wird – mit anderen Worten, dies ermöglicht Ihnen, ein benutzerdefiniertes Element von innerhalb seines Shadow DOMs auszuwählen.

Hinweis: Dies hat keine Wirkung, wenn es außerhalb eines Shadow DOMs verwendet wird.

Probieren Sie es aus

/* This CSS is being applied inside the shadow DOM. */
:host {
 background-color: aqua;
}
<h1 id="shadow-dom-host"></h1>
const shadowDom = init();
// add a <span> element in the shadow DOM
const span = document.createElement("span");
span.textContent = "Inside shadow DOM";
shadowDom.appendChild(span);
// attach shadow DOM to the #shadow-dom-host element
function init() {
 const host = document.getElementById("shadow-dom-host");
 const shadowDom = host.attachShadow({ mode: "open" });
 const cssTab = document.querySelector("#css-output");
 const shadowStyle = document.createElement("style");
 shadowStyle.textContent = cssTab.textContent;
 shadowDom.appendChild(shadowStyle);
 cssTab.addEventListener("change", () => {
 shadowStyle.textContent = cssTab.textContent;
 });
 return shadowDom;
}
css
/* Selects a shadow root host */
:host {
 font-weight: bold;
}

Syntax

css
:host {
 /* ... */
}

Beispiele

Den Shadow-Host stylen

Die folgenden Codeausschnitte stammen aus unserem Beispiel für Host-Selektoren (sehen Sie es auch live).

In diesem Beispiel haben wir ein grundständiges benutzerdefiniertes Element — <context-span> — das Sie um Text herum verwenden können:

html
<h1>
 Host selectors <a href="#"><context-span>example</context-span></a>
</h1>

Innerhalb des Konstruktors des Elements erstellen wir style- und span-Elemente, füllen das span-Element mit dem Inhalt des benutzerdefinierten Elements und füllen das style-Element mit einigen CSS-Regeln:

js
const style = document.createElement("style");
const span = document.createElement("span");
span.textContent = this.textContent;
const shadowRoot = this.attachShadow({ mode: "open" });
shadowRoot.appendChild(style);
shadowRoot.appendChild(span);
style.textContent =
 "span:hover { text-decoration: underline; }" +
 ":host-context(h1) { font-style: italic; }" +
 ':host-context(h1)::after { content: " - no links in headers!" }' +
 ":host-context(article, aside) { color: gray; }" +
 ":host(.footer) { color : red; }" +
 ":host { background: rgb(0 0 0 / 10%); padding: 2px 5px; }";

Die Regel :host { background: rgb(0 0 0 / 10%); padding: 2px 5px; } stylt alle Instanzen des <context-span>-Elements (den Shadow-Host in diesem Fall) im Dokument.

Spezifikationen

Spezifikation
CSS Shadow Module Level 1
# host-selector

Browser-Kompatibilität

Siehe auch

Help improve MDN

Erfahren Sie, wie Sie beitragen können Diese Seite wurde automatisch aus dem Englischen übersetzt.

AltStyle によって変換されたページ (->オリジナル) /