元素:computedStyleMap() 方法
computedStyleMap()
是 Element
接口的方法,它返回一个 StylePropertyMapReadOnly
接口,该接口提供 CSS 声明块的只读表示,它是 CSSStyleDeclaration
的替代方案。
语法
js
computedStyleMap()
参数
无。
返回值
一个 StylePropertyMapReadOnly
接口。
示例
我们从一些简单的 HTML 开始:一个带有链接的段落,以及一个定义列表,我们将向其中添加所有 CSS 属性/值对。
html
<p>
<a href="https://example.com">Link</a>
</p>
<dl id="regurgitation"></dl>
我们添加了一些 CSS
css
a {
--color: red;
color: var(--color);
}
我们添加 JavaScript 来获取我们的链接,并使用 computedStyleMap()
返回所有 CSS 属性值的定义列表。
js
// get the element
const myElement = document.querySelector("a");
// get the <dl> we'll be populating
const stylesList = document.querySelector("#regurgitation");
// Retrieve all computed styles with computedStyleMap()
const allComputedStyles = myElement.computedStyleMap();
// iterate through the map of all the properties and values, adding a <dt> and <dd> for each
for (const [prop, val] of allComputedStyles) {
// properties
const cssProperty = document.createElement("dt");
cssProperty.appendChild(document.createTextNode(prop));
stylesList.appendChild(cssProperty);
// values
const cssValue = document.createElement("dd");
cssValue.appendChild(document.createTextNode(val));
stylesList.appendChild(cssValue);
}
在 支持 computedStyleMap()
的浏览器 中,您将看到所有 CSS 属性和值的列表。在其他浏览器中,您只会看到一个链接。
您是否意识到链接有多少默认的 CSS 属性?将 'a
' 更新为 'p
',您会注意到 margin-top
和 margin-bottom
默认计算值的差异。
规范
规范 |
---|
CSS 类型化 OM 级别 1 # dom-element-computedstylemap |
浏览器兼容性
BCD 表格只能在浏览器中加载