Dieser Inhalt wurde automatisch aus dem Englischen übersetzt, und kann Fehler enthalten.Erfahre mehr über dieses Experiment.
Window: getComputedStyle() Methode
Baseline Widely available
This feature is well established and works across many devices and browser versions. It’s been available across browsers since Juli 2015.
DieWindow.getComputedStyle() Methode gibt ein Live-Read-Only-Objekt vom TypCSSStyleProperties zurück, das dieaufgelösten Werte aller CSS-Eigenschaften eines Elements enthält, nachdem aktive Stylesheets angewendet und alle Berechnungen dieser Werte aufgelöst wurden.
In diesem Artikel
Syntax
getComputedStyle(element)getComputedStyle(element, pseudoElt)Parameter
elementDer
Elementfür den die berechneten Stile abgerufen werden sollen.pseudoEltOptionalEin String, der das Pseudo-Element angibt, das übereinstimmt.Weggelassen (oder
null) für reale Elemente.
Rückgabewert
EinLiveCSSStyleProperties-Objekt, das sich automatisch aktualisiert, wenn sich die Stile des Elements ändern.
Hinweis:Frühere Versionen der Spezifikation gaben einCSSStyleDeclaration zurück (von demCSSStyleProperties abgeleitet ist).Siehe dieBrowser-Kompatibilität-Tabelle für Informationen zur Browserunterstützung.
Warnung:Zurückgegebene Werte sind manchmal absichtlich ungenau.Um das Sicherheitsproblem "CSS History Leak" zu vermeiden, können Browser über die berechneten Stile für einen besuchten Link lügen und Werte zurückgeben, als hätte der Benutzer die verlinkte URL nie besucht.SiehePlugging the CSS history leak undPrivacy-related changes coming to CSS:visited für Beispiele, wie dies implementiert wird.
Ausnahmen
TypeErrorTritt auf, wenn das übergebene Objekt kein
Elementist oderpseudoEltkein gültiger Pseudo-Element-Selektor ist oder wenn es sich um::part()oder::slotted()handelt.Hinweis:Ein gültiger Pseudo-Element-Selektor bezieht sich auf die syntaktische Gültigkeit, z. B. wird
::unsupportedals gültig angesehen, auch wenn das Pseudo-Element selbst nicht unterstützt wird.
Beschreibung
Die Methode gibt ein Live-Read-Only-Objekt vom TypCSSStyleProperties zurück, das dieaufgelösten Werte aller CSS-Eigenschaften eines Elements enthält, nachdem aktive Stylesheets angewendet und alle Berechnungen dieser Werte aufgelöst wurden.
Das zurückgegebene Objekt kann verwendet werden, um die Stile des Elements zu inspizieren — einschließlich derjenigen, die inline, mit einem<style>-Element oder über ein externes Stylesheet gesetzt sind. Da das Objekt schreibgeschützt ist, können Sie es nicht verwenden, um die Stile eines Elements zu setzen. Da es jedoch "live" ist, wird das zurückgegebene Objekt mit dem entsprechenden aufgelösten Wert aktualisiert, wenn Sie die Elementstile mit einer anderen API (wieHTMLElement.style) aktualisieren.
Die Unterscheidung, dass das Objektaufgelöste Werte enthält, ist wichtig. Für die meisten Eigenschaften, insbesondere diejenigen, die vom Layout abhängen, wiedisplay,font-size oderline-height, ist der aufgelöste Wert der berechnete Wert. Für Eigenschaften, die vom Layout abhängen, kann der verwendete Wert geringfügig vom berechneten Wert abweichen, und dies ist der zurückgegebene aufgelöste Wert. Für einen animierten Eigenschaftswert wird es der berechnete Wert an der aktuellen Stelle in der Animation sein.
Das zurückgegebene Objekt hat Bindestrich-benannte und entsprechendeCamelcase benannte Eigenschaften füralleCSS-Eigenschaften, die vom Browser unterstützt werden, einschließlich sowohlKurzform als auch Langform-Eigenschaften.
CSS-Kurzformeigenschaften des Elements werden in ihre entsprechenden Langform-Eigenschaften erweitert. Zum Beispiel wird ein Element mit dem Stil"border-top: 1px solid black" durch Eigenschaften mit den Namenborder-top undborderTop im zurückgegebenen Objekt dargestellt, sowie die entsprechenden Langform-Eigenschaftenborder-top-color undborderTopColor,border-top-style undborderTopStyle, undborder-top-width undborderTopWidth.
Beachten Sie, dass das zurückgegebene Objekt vom selben Typ ist wie das Objekt, das von derstyle Eigenschaft des Elements zurückgegeben wird. Jedoch kann daselement.style Objekt auch verwendet werden, umStile auf diesem Element zu setzen und gibt nur die Inline-Stile oder die via JavaScript gesetzten zurück.
Farbwerte
Aus Kompatibilitätsgründen werden serialisierte Farbwerte, die im traditionellen sRGB-Farbraum angegeben wurden, alsrgb() Farben ausgedrückt, wenn der Alpha-Kanal-Wert genau1 ist, und alsrgba() Farben andernfalls. Die veraltete Syntax mit Kommata wird verwendet, mit Kommata als Trennzeichen (zum Beispielrgb(255, 0, 0)).
Für andereFarbräume werden die Werte unter Verwendung der entsprechenden Funktionalen Ausdrücke serialisiert:lab(),lch()oklab(),oklch(),color().
Beispiele
>Abrufen aufgelöster Stile
In diesem Beispiel stylen wir ein<p>-Element, rufen diese Stile dann mitgetComputedStyle() ab und geben sie in den Textinhalt des<p> aus.
HTML
<p>Hello</p>CSS
p { width: 400px; margin: 0 auto; padding: 20px; font: 2rem/2 sans-serif; text-align: center; background: purple; color: white;}JavaScript
const para = document.querySelector("p");const compStyles = window.getComputedStyle(para);para.textContent = `My computed font-size is ${compStyles.getPropertyValue("font-size")},\n` + `and my computed line-height is ${compStyles.getPropertyValue( "line-height", )}.`;Ergebnis
Verwendung mit Pseudo-Elementen
getComputedStyle() kann Stilinformationen vonPseudo-Elementen abrufen, wie::after,::before,::marker oder::line-marker.
<h3>Generated content</h3>h3::after { content: " rocks!";}const h3 = document.querySelector("h3");const result = getComputedStyle(h3, "::after").content;console.log("the generated content is: ", result); // returns ' rocks!'Spezifikationen
| Specification |
|---|
| CSS Object Model (CSSOM)> # dom-window-getcomputedstyle> |