HTMLElement: attributeStyleMap property

The attributeStyleMap read-only property of the HTMLElement interface returns a live StylePropertyMap object that contains a list of style properties of the element that are defined in the element's inline style attribute, or assigned using the style property of the HTMLElement interface via script.

Shorthand properties are expanded. If you set border-top: 1px solid black, the longhand properties (border-top-color, border-top-style, and border-top-width) are set instead.

The main difference between style property and attributeStyleMap property is that, the style property will return a CSSStyleDeclaration object, while the attributeStyleMap property will return a StylePropertyMap object.

Though the property itself is not writable, you could read and write inline styles through the StylePropertyMap object that it returns, just like through the CSSStyleDeclaration object that returns via the style property.


A live StylePropertyMap object.


The following code snippet shows the relationship between HTML style attribute and attributeStyleMap property:

<div style="white-space: pre-line;">
  <div id="el" style="border-top: 1px solid blue; color: red;">
    An example element
  <div id="output"></div>
#el {
  font-size: 16px;
const element = document.getElementById("el");
const output = document.getElementById("output");

for (const property of element.attributeStyleMap) {
  output.textContent += `${property[0]} = ${property[1][0].toString()}\n`;


CSS Typed OM Level 1
# dom-elementcssinlinestyle-attributestylemap

Browser compatibility

BCD tables only load in the browser

See also