CSSMathSum

可用性有限

此特性不是基线特性,因为它在一些最广泛使用的浏览器中不起作用。

CSSMathSum 接口是 CSS 类型化对象模型 API 的一部分,它表示通过在 CSSNumericValue 上调用 add()sub()toSum() 方法获得的结果。

当对使用 calc() 函数创建值的 CSS 属性使用 StylePropertyMapReadOnly.get() 方法时,返回的对象类型就是 CSSMathSum

CSSStyleValue CSSNumericValue CSSMathValue CSSMathSum

构造函数

CSSMathSum() 实验性

创建一个新的 CSSMathSum 对象。

实例属性

CSSMathSum.values

返回一个 CSSNumericArray 对象,其中包含一个或多个 CSSNumericValue 对象。

静态方法

该接口还可能继承其父接口 CSSMathValue 的方法。

实例方法

该接口还可能继承其父接口 CSSMathValue 的方法。

示例

我们创建一个元素,其 width 使用 calc() 函数确定,然后 console.log() 元素的 operatorvalues,并对 values 进行一些深入了解。

html
<div>has width</div>

我们为一个 width 赋值

css
div {
  width: calc(30% - 20px);
}

我们添加 JavaScript

js
const styleMap = document.querySelector("div").computedStyleMap();

console.log(styleMap.get("width")); // CSSMathSum {values: CSSNumericArray, operator: "sum"}
console.log(styleMap.get("width").operator); // 'sum'
console.log(styleMap.get("width").values); // CSSNumericArray {0: CSSUnitValue, 1: CSSUnitValue, length: 2}
console.log(styleMap.get("width").values[0]); // CSSUnitValue {value: 30, unit: "percent"}
console.log(styleMap.get("width").values[0].value); // 30
console.log(styleMap.get("width").values[0].unit); // 'percent'
console.log(styleMap.get("width").values[1]); // CSSUnitValue {value: -20, unit: "px"}
console.log(styleMap.get("width").values[1].value); //  -20
console.log(styleMap.get("width").values[1].unit); // 'px'

该规范仍在发展中。未来我们可能会将最后三行写成

js
console.log(styleMap.get("width").values[1]); // CSSMathNegate {value: CSSUnitValue, operator: "negate"}
console.log(styleMap.get("width").values[1].value); // CSSUnitValue {value: 20, unit: "px"}
console.log(styleMap.get("width").values[1].value.unit); // 'px'

规范

规范
CSS 类型化 OM Level 1
# cssmathsum

浏览器兼容性