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

瀏覽器相容性