CSS Typed Object Model API
Die CSS Typed Object Model API vereinfacht die Manipulation von CSS-Eigenschaften, indem sie CSS-Werte als typisierte JavaScript-Objekte statt als Strings verfügbar macht. Dies vereinfacht nicht nur die Manipulation von CSS, sondern verringert auch die negativen Auswirkungen auf die Leistung im Vergleich zu HTMLElement.style.
Normalerweise können CSS-Werte in JavaScript als Strings gelesen und geschrieben werden, was langsam und umständlich sein kann. Die CSS Typed Object Model API bietet Schnittstellen, um mit den zugrunde liegenden Werten zu interagieren, indem sie diese mit spezialisierten JS-Objekten darstellt, die einfacher und zuverlässiger manipulierbar und verständlich sind als das Parsen und Verketten von Strings. Dies ist für Autoren einfacher (beispielsweise werden numerische Werte mit echten JS-Zahlen reflektiert und haben einheitsgeprüfte mathematische Operationen definiert). Es ist auch allgemein schneller, da Werte direkt manipulierbar und dann kostengünstig zurück in zugrunde liegende Werte übersetzbar sind, ohne sowohl CSS-Strings zu erstellen als auch zu parsen.
Die CSS Typed OM ermöglicht sowohl die performante Manipulation von Werten, die CSS-Eigenschaften zugewiesen sind, als auch die Erstellung von wartbarem Code, der verständlicher und einfacher zu schreiben ist.
Schnittstellen
>CSSStyleValue
Das CSSStyleValue-Interface der CSS Typed Object Model API ist die Basisklasse aller über die Typed OM API zugänglichen CSS-Werte. Eine Instanz dieser Klasse kann überall verwendet werden, wo ein String erwartet wird.
CSSStyleValue.parse()-
Methode, die es ermöglicht,
CSSNumericValueaus einem CSS-String zu konstruieren. Sie setzt eine spezifische CSS-Eigenschaft auf die angegebenen Werte und gibt den ersten Wert alsCSSStyleValue-Objekt zurück. CSSStyleValue.parseAll()-
Methode, die alle Vorkommen einer spezifischen CSS-Eigenschaft auf den angegebenen Wert setzt und ein Array von
CSSStyleValue-Objekten zurückgibt, die jeweils einen der bereitgestellten Werte enthalten.
StylePropertyMap
Das StylePropertyMap-Interface der CSS Typed Object Model API bietet eine Darstellung eines CSS-Deklarationsblocks als Alternative zu CSSStyleDeclaration.
StylePropertyMap.set()-
Methode, die die CSS-Deklaration mit der angegebenen Eigenschaft auf den angegebenen Wert ändert.
StylePropertyMap.append()-
Methode, die eine neue CSS-Deklaration zur
StylePropertyMapmit der angegebenen Eigenschaft und dem Wert hinzufügt. StylePropertyMap.delete()-
Methode, die die CSS-Deklaration mit der angegebenen Eigenschaft aus der
StylePropertyMapentfernt. StylePropertyMap.clear()-
Methode, die alle Deklarationen in der
StylePropertyMapentfernt.
CSSUnparsedValue
Das CSSUnparsedValue-Interface der CSS Typed Object Model API repräsentiert Eigenschaftswerte, die auf benutzerdefinierte Eigenschaften verweisen. Es besteht aus einer Liste von Stringfragmenten und Variablenreferenzen.
CSSUnparsedValue()Konstruktor-
Erstellt ein neues
CSSUnparsedValue-Objekt, das Eigenschaftswerte darstellt, die auf benutzerdefinierte Eigenschaften verweisen. CSSUnparsedValue.entries()-
Methode, die ein Array der eigenen aufzählbaren
[key, value]-Paare eines gegebenen Objekts in derselben Reihenfolge zurückgibt, wie sie von einerfor...in-Schleife bereitgestellt wird (der Unterschied besteht darin, dass eine for-in-Schleife auch Eigenschaften in der Prototypkette aufzählt). CSSUnparsedValue.forEach()-
Methode, die eine bereitgestellte Funktion einmal für jedes Element des
CSSUnparsedValueausführt. CSSUnparsedValue.keys()-
Methode, die ein neues Array-Iterator-Objekt zurückgibt, das die Schlüssel für jeden Index im Array enthält.
CSSKeywordValue Serialisierung
Das CSSKeywordValue-Interface der CSS Typed Object Model API erstellt ein Objekt, um CSS-Schlüsselwörter und andere Bezeichner darzustellen.
CSSKeywordValue()Konstruktor-
Konstruktor erstellt ein neues
CSSKeywordValue()-Objekt, das CSS-Schlüsselwörter und andere Bezeichner darstellt. CSSKeywordValue.value()-
Eigenschaft des
CSSKeywordValue-Interfaces, die den Wert desCSSKeywordValuezurückgibt oder setzt.
CSSStyleValue Schnittstellen
CSSStyleValue ist die Basisklasse, durch die alle CSS-Werte ausgedrückt werden. Unterklassen umfassen:
CSSImageValue-
Eine Schnittstelle, die Werte für Eigenschaften darstellt, die ein Bild als Wert annehmen, beispielsweise
background-image,list-style-imageoderborder-image-source. CSSKeywordValue-
Eine Schnittstelle, die ein Objekt erstellt, um CSS-Schlüsselwörter und andere Bezeichner darzustellen. Wenn es an Stellen verwendet wird, an denen ein String erwartet wird, gibt es den Wert von
CSSKeyword.valuezurück. CSSMathValue-
Ein Baum aus Unterklassen, der numerische Werte repräsentiert, die komplexer sind als ein einzelner Wert und eine Einheit, einschließlich:
CSSMathMax- repräsentiert die CSS-max()-Funktion.CSSMathMin- repräsentiert die CSS-min()-Funktion.CSSMathNegate- negiert den übergebenen Wert.CSSMathInvert- repräsentiert einen CSS-calc()-Wert, der alscalc(1 / <value>)verwendet wird. Dieser Typ wird intern vondiv()verwendet, um ein entsprechendesCSSMathProductzu erstellen.CSSMathProduct- repräsentiert das Ergebnis, das durch Aufruf vonmul()oderdiv()aufCSSNumericValueerhalten wird.CSSMathSum- repräsentiert das Ergebnis, das durch Aufruf vonadd(),sub()odertoSum()aufCSSNumericValueerhalten wird.
CSSNumericValue-
Ein Interface, das Operationen darstellt, die alle numerischen Werte ausführen können, einschließlich:
CSSNumericValue.add- Fügt demCSSNumericValuedie angegebenen Zahlen hinzu.CSSNumericValue.sub- Subtrahiert die angegebenen Zahlen vomCSSNumericValue.CSSNumericValue.mul- Multipliziert die angegebenen Zahlen mit demCSSNumericValue.CSSNumericValue.div- Teilt dasCSSNumericValuedurch den angegebenen Wert und löst einen Fehler aus, wenn0.CSSNumericValue.min- Gibt den minimal übergebenen Wert zurück.CSSNumericValue.max- Gibt den maximal übergebenen Wert zurück.CSSNumericValue.equals- Gibt true zurück, wenn alle Werte vom exakt gleichen Typ und Wert und in der gleichen Reihenfolge sind. Andernfalls false.CSSNumericValue.to- Konvertiertvaluein einen anderen mit der angegebenen Einheit.CSSNumericValue.toSumCSSNumericValue.typeCSSNumericValue.parse- Gibt eine Zahl zurück, die aus einem CSS-String geparst wurde.
CSSPositionValue-
Repräsentiert Werte für Eigenschaften, die eine Position erfordern, beispielsweise object-position.
CSSTransformValue-
Ein Interface, das eine Liste von
transform-Wertlisten repräsentiert. Sie "enthalten" einen oder mehrereCSSTransformComponents, die einzelnetransform-Funktionswerte darstellen. CSSUnitValue-
Ein Interface, das numerische Werte darstellt, die als eine einzige Einheit oder als benannte Zahl und Prozentsatz dargestellt werden können.
CSSUnparsedValue-
Repräsentiert Eigenschaftswerte, die auf benutzerdefinierte Eigenschaften verweisen. Es besteht aus einer Liste von Stringfragmenten und Variablenreferenzen.
Spezifikationen
| Specification |
|---|
| CSS Typed OM Level 1> # stylevalue-objects> |
| CSS Typed OM Level 1> # the-stylepropertymap> |
| CSS Typed OM Level 1> # cssunparsedvalue> |
| CSS Typed OM Level 1> # keywordvalue-objects> |