Note: This feature is available in Web Workers.
The CSSMathValue interface of the CSS Typed Object Model API is the base interface for objects representing complex numeric values produced by the CSS calc(), min(), max(), and clamp() functions.
Note: CSSMathValue cannot be constructed directly. Instances are returned by the platform (for example via StylePropertyMapReadOnly.get()) as one of its subtypes, listed below.
CSSMathValue.operator Read onlyReturns the operator that the current subtype represents.
Also inherits methods from its parent interface, CSSNumericValue.
Also inherits methods from its parent interface, CSSNumericValue.
calc() representationsThis example shows how the operator property identifies the operation represented by a calc() value's CSSMathValue subtype, including for a nested value.
<div id="demoBox">Text</div>width is set using a calc() subtraction, which is represented as a CSSMathSum whose second term is negated.
#demoBox {
width: calc(30% - 20px);
}We read the width value using computedStyleMap(), then log its operator and the operator of its nested value.
const styleMap = document.querySelector("#demoBox").computedStyleMap();
const width = styleMap.get("width");
log(`type: ${width.constructor.name}`);
log(`operator: ${width.operator}`);
log(`nested value type: ${width.values[1].constructor.name}`);
log(`nested value operator: ${width.values[1].operator}`);width is represented by a CSSMathSum object whose operator is "sum", because calc(30% - 20px) is represented as an addition of 30% and the negation of 20px. The second nested value's type is CSSMathNegate and its operator is "negate" (reflecting that negation).