StylePropertyMapReadOnly

Experimental: This is an experimental technology
Check the Browser compatibility table carefully before using this in production.

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().

Properties

StylePropertyMapReadOnly.size

Returns an unsinged long integer containing the size of the StylePropertyMapReadOnly object.

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 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.

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 inherted 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 thru 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

Desktop Mobile
Chrome Edge Firefox Internet Explorer Opera Safari WebView Android Chrome Android Firefox for Android Opera Android Safari on IOS Samsung Internet
StylePropertyMapReadOnly
66
79
No
No
53
No
66
66
No
47
No
9.0
entries
66
79
No
No
53
No
66
66
No
47
No
9.0
forEach
66
79
No
No
53
No
66
66
No
47
No
9.0
get
66
79
No
No
53
No
66
66
No
47
No
9.0
getAll
66
79
No
No
53
No
66
66
No
47
No
9.0
has
66
79
No
No
53
No
66
66
No
47
No
9.0
keys
66
79
No
No
53
No
66
66
No
47
No
9.0
size
66
79
No
No
53
No
66
66
No
47
No
9.0
values
66
79
No
No
53
No
66
66
No
47
No
9.0
@@iterator
66
79
No
No
53
No
66
66
No
47
No
9.0

© 2005–2021 MDN contributors.
Licensed under the Creative Commons Attribution-ShareAlike License v2.5 or later.
https://developer.mozilla.org/en-US/docs/Web/API/StylePropertyMapReadOnly