Window: getDefaultComputedStyle()-Methode
Kein Standard: Diese Funktion ist nicht standardisiert und befindet sich nicht im Standardisierungsprozess. Verwenden Sie sie nicht auf Produktionsseiten, die auf das Web ausgerichtet sind: Sie wird nicht für alle Benutzer funktionieren. Außerdem kann es große Inkompatibilitäten zwischen Implementierungen geben und das Verhalten kann sich in Zukunft ändern.
Die getDefaultComputedStyle()
-Methode liefert die Standardwerte der berechneten Werte aller CSS-Eigenschaften eines Elements, ohne die Autoren-Stildefinitionen zu berücksichtigen. Das bedeutet, dass nur Benutzeragenten- und Benutzerstile berücksichtigt werden.
Syntax
getDefaultComputedStyle(element)
getDefaultComputedStyle(element, pseudoElt)
Parameter
Rückgabewert
Der zurückgegebene style
ist ein CSSStyleDeclaration
-Objekt. Das Objekt ist vom gleichen Typ wie das Objekt, das von Window.getComputedStyle()
zurückgegeben wird, berücksichtigt aber nur Benutzeragenten- und Benutzervorgaben.
Beispiele
Einfaches Beispiel
const elem1 = document.getElementById("elemId");
const style = window.getDefaultComputedStyle(elem1);
Längeres Beispiel
<style>
#elem-container {
position: absolute;
left: 100px;
top: 200px;
height: 100px;
}
</style>
<div id="elem-container">dummy</div>
<div id="output"></div>
<script>
const elem = document.getElementById("elem-container");
const theCSSprop = window.getDefaultComputedStyle(elem).position;
document.getElementById("output").textContent = theCSSprop; // Will output "static"
</script>
Verwendung mit Pseudo-Elementen
Die getDefaultComputedStyle()
-Methode kann Stilinformationen aus Pseudo-Elementen extrahieren (z.B. ::before
oder ::after
).
<style>
h3:after {
content: " rocks!";
}
</style>
<h3>generated content</h3>
<script>
const h3 = document.querySelector("h3");
const result = getDefaultComputedStyle(h3, ":after").content;
console.log("the generated content is: ", result); // returns 'none'
</script>
Hinweise
Der zurückgegebene Wert ist in bestimmten bekannten Fällen absichtlich falsch, um das sogenannte CSS History Leak Sicherheitsproblem zu vermeiden. Insbesondere können Browser absichtlich nicht die korrekten Werte für einen Link anzeigen und immer Werte zurückgeben, als hätte ein Benutzer die verlinkte Seite nie besucht, und/oder die Stile begrenzen, die mit dem :visited
-Pseudo-Selektor angewendet werden können. Weitere Details zur Implementierung finden Sie unter https://blog.mozilla.org/security/2010/03/31/plugging-the-css-history-leak/ und https://hacks.mozilla.org/2010/03/privacy-related-changes-coming-to-css-vistited/.
Spezifikationen
Vorgeschlagen an die CSS-Arbeitsgruppe.
Browser-Kompatibilität
BCD tables only load in the browser