StylePropertyMapReadOnly
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().
Instance properties
- StylePropertyMapReadOnly.size
- 
    Returns an unsigned long integer containing the size of the StylePropertyMapReadOnlyobject.
Instance methods
- StylePropertyMapReadOnly.entries()
- 
    Returns an array of a given object's own enumerable property [key, value]pairs, in the same order as that provided by afor...inloop (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 CSSStyleValueobjects containing the values for the provided property.
- StylePropertyMapReadOnly.has()
- 
    Indicates whether the specified property is in the StylePropertyMapReadOnlyobject.
- 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 StylePropertyMapReadOnlyobject.
Examples
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
| Specification | 
|---|
| CSS Typed OM Level 1 # the-stylepropertymap | 
Browser compatibility
BCD tables only load in the browser