MathMLElement: style 属性

Baseline 已广泛支持

此功能已成熟,并且在众多设备和浏览器版本上都能正常工作。自 2023 年 1 月以来,它已在各浏览器中可用。

MathMLElement 的只读 style 属性返回元素的内联 style,形式为一个实时的 CSSStyleProperties 对象。该对象可用于获取和设置元素的内联样式。

一个活动的 CSSStyleProperties 对象。

注意:规范的早期版本返回的是 CSSStyleDeclarationCSSStyleProperties 派生自它)。有关浏览器支持信息,请参见浏览器兼容性表。

描述

元素 style 属性中设置的内联样式的取值,会体现在返回的 CSSStyleProperties 对象对应的属性上。

注意: CSSStyleProperties 具有破折号命名和对应的 驼峰式命名的属性,用于表示浏览器支持的所有 CSS 属性(不仅仅是内联样式)。没有对应内联样式的属性将被设置为 ""

元素的简写 CSS 属性会扩展为相应的长格式属性。例如,样式为 "border-top: 1px solid black" 的元素将在返回的对象中表示为名为 border-topborderTop 的属性,以及相应的长写属性 border-top-colorborderTopColorborder-top-styleborderTopStyle、以及 border-top-widthborderTopWidth

style 属性是只读的,这意味着无法将其赋值为一个 CSSStyleProperties 对象。然而,可以通过直接将一个字符串赋值给该属性来设置内联样式。在这种情况下,该字符串可以从 cssText 中读取。以这种方式使用 style 会完全覆盖元素上的所有内联样式。

为了在不更改其他样式值的情况下向元素添加特定样式,通常更倾向于在 CSSStyleProperties 对象上设置单独的属性。例如,您可以编写 element.style.backgroundColor = "red"。通过将样式声明设置为 null 或空字符串(例如 element.style.color = null)来重置样式声明。

style 属性在 CSS 级联中的优先级与通过 style 属性设置的内联样式声明相同。

示例

枚举样式信息

此示例演示了如何枚举 CSSStyleProperties 的破折号命名属性。

HTML

html
<math>
  <mrow>
    <mi>f</mi>
    <mo stretchy="false">(</mo>
    <mi class="parameter" style="color: red; border-bottom: 1px solid">x</mi>
    <mo stretchy="false">)</mo>
    <mo>=</mo>
    <mi>x</mi>
  </mrow>
</math>
<pre id="log"></pre>

JavaScript

以下代码迭代 CSSStyleProperties 的可枚举属性并记录结果。

js
const element = document.querySelector(".parameter");
const elementStyle = element.style;

// Loop through all the element's styles using `for...in`
for (const prop in elementStyle) {
  // Check the property belongs to the CSSStyleProperties instance
  // Ensure the property is a numeric index (indicating a dash-named/inline style)
  if (
    Object.hasOwn(elementStyle, prop) &&
    !Number.isNaN(Number.parseInt(prop, 10))
  ) {
    log(
      `${
        elementStyle[prop]
      } = '${elementStyle.getPropertyValue(elementStyle[prop])}'`,
    );
  }
}

结果

结果如下所示。请注意,只有元素的 CSS 长写属性才是枚举值(内联简写属性未被枚举)。

规范

规范
CSS 对象模型 (CSSOM)
# dom-elementcssinlinestyle-style

浏览器兼容性

另见