Dieser Inhalt wurde automatisch aus dem Englischen übersetzt, und kann Fehler enthalten. Erfahre mehr über dieses Experiment.

View in English Always switch to English

CSSNumericValue: Statische Methode parse()

Eingeschränkt verfügbar

Diese Funktion ist nicht Baseline, da sie in einigen der am weitesten verbreiteten Browser nicht funktioniert.

Want more browser support for this feature? Tell us why.

Die statische Methode parse() der Schnittstelle CSSNumericValue erstellt einen CSSNumericValue aus einer Zeichenfolge mit einem CSS-Wert, beispielsweise "42px" oder "calc(50% + 10px)".

Hinweis: Diese Methode ist nur in Window-Kontexten verfügbar, nicht in Worker- oder Worklet-Kontexten. Alle anderen Methoden der Schnittstelle CSSNumericValue sind in Workern und Worklets verfügbar.

Syntax

js
CSSNumericValue.parse(cssText)

Parameter

cssText

Eine Zeichenfolge, die eine einzelne CSS-Zahl, einen Prozentwert, eine Dimension (eine Zahl mit einer Einheit, beispielsweise 42px) oder eine mathematische Funktion wie calc(), min(), max() oder clamp() enthält.

Rückgabewert

Ein CSSNumericValue. Bei einer Zahl, einem Prozentwert oder einer Dimension handelt es sich dabei um einen CSSUnitValue, bei einer mathematischen Funktion um einen der Untertypen von CSSMathValue.

Ausnahmen

SyntaxError DOMException

Wird ausgelöst, wenn cssText keine einzelne Zahl, kein einzelner Prozentwert, keine einzelne Dimension und keine einzelne mathematische Funktion ist (beispielsweise "auto", "10px 20px" oder "var(--size)"), wenn eine unbekannte Einheit verwendet wird (beispielsweise "10foo") oder wenn eine ungültige Berechnung enthalten ist (beispielsweise "calc(1px + 1s)").

Beschreibung

Die Zeichenfolge wird genauso geparst wie ein Wert in einem Stylesheet. Leerzeichen und Kommentare um den Wert herum werden ignoriert, und bei Einheitennamen wird nicht zwischen Groß- und Kleinschreibung unterschieden. Daher liefert " 10PX " dasselbe Ergebnis wie "10px". Eine Zahl ohne Einheit, beispielsweise "7", ergibt einen CSSUnitValue, dessen Einheit "number" ist.

Mathematische Funktionen werden ebenfalls genauso vereinfacht wie in einem Stylesheet: Terme, die zusammengefasst werden können, werden zusammengefasst. Beispielsweise ergibt "calc(1px + 2px)" eine CSSMathSum mit einem einzigen Term, 3px. Terme, die erst nach dem Layout der Seite zusammengefasst werden können, etwa 50% und 10px, bleiben getrennt.

Beispiele

Einzelne Werte parsen

Zahlen, Prozentwerte und Dimensionen werden als CSSUnitValue geparst:

js
const length = CSSNumericValue.parse("42.0px");
console.log(length.constructor.name); // "CSSUnitValue"
console.log(length.value); // 42
console.log(length.unit); // "px"

const percentage = CSSNumericValue.parse("50%");
console.log(percentage.unit); // "percent"

Eine Berechnung parsen

Eine mathematische Funktion wird als einer der Untertypen von CSSMathValue geparst. Terme, die zusammengefasst werden können, werden zusammengefasst. Daher wird calc(1px + 2px) zu einer Summe mit einem einzigen Term vereinfacht:

js
const sum = CSSNumericValue.parse("calc(50% + 10px)");
console.log(sum.constructor.name); // "CSSMathSum"
console.log(sum.toString()); // "calc(50% + 10px)"

const simplified = CSSNumericValue.parse("calc(1px + 2px)");
console.log(simplified.toString()); // "calc(3px)"

Umgang mit einer Zeichenfolge, die kein numerischer Wert ist

js
try {
  CSSNumericValue.parse("auto");
} catch (e) {
  console.log(e.name); // "SyntaxError"
}

Spezifikationen

Spezifikation
CSS Typed OM Level 1
# dom-cssnumericvalue-parse

Browser-Kompatibilität

Siehe auch