Limited availability
The StylePropertyMapReadOnly
interface of the CSS Typed Object Model API provides a read-only representation of a CSS declaration block that is an alternative to CSSStyleDeclaration
. Retrieve an instance of this interface using Element.computedStyleMap()
.
StylePropertyMapReadOnly.size
Returns an unsigned long integer containing the size of the StylePropertyMapReadOnly
object.
StylePropertyMapReadOnly.entries()
Returns an array of a given object's own enumerable property [key, value]
pairs, in the same order as that provided by a for...in
loop (the difference being that a for-in loop enumerates properties in the prototype chain as well).
StylePropertyMapReadOnly.forEach()
Executes a provided function once for each element of StylePropertyMapReadOnly
.
StylePropertyMapReadOnly.get()
Returns the value of the specified property.
StylePropertyMapReadOnly.getAll()
Returns an array of CSSStyleValue
objects containing the values for the provided property.
StylePropertyMapReadOnly.has()
Indicates whether the specified property is in the StylePropertyMapReadOnly
object.
StylePropertyMapReadOnly.keys()
Returns a new array iterator containing the keys for each item in StylePropertyMapReadOnly
.
StylePropertyMapReadOnly.values()
Returns a new array iterator containing the values for each index in the StylePropertyMapReadOnly
object.
We have to have an element to observe:
<p>
This is a paragraph with some text. We can add some CSS, or not. The style map
will include all the default and inherited CSS property values.
</p>
<dl id="output"></dl>
We add a touch of CSS with a custom property to better demonstrate the output:
p {
--someVariable: 1.6em;
--someOtherVariable: translateX(33vw);
--anotherVariable: 42;
line-height: var(--someVariable);
}
We add JavaScript to grab our paragraph and return back a definition list of all the default CSS property values using Element.computedStyleMap()
.
// get the element
const myElement = document.querySelector("p");
// get the <dl> we'll be populating
const stylesList = document.querySelector("#output");
// Retrieve all computed styles with computedStyleMap()
const stylePropertyMap = myElement.computedStyleMap();
// iterate through the map of all the properties and values, adding a <dt> and <dd> for each
for (const [prop, val] of stylePropertyMap) {
// properties
const cssProperty = document.createElement("dt");
cssProperty.innerText = prop;
stylesList.appendChild(cssProperty);
// values
const cssValue = document.createElement("dd");
cssValue.innerText = val;
stylesList.appendChild(cssValue);
}
Specifications Browser compatibility
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4