CSS Typed Object Model API

CSS 型別化物件模型 API 透過將 CSS 值暴露為型別化的 JavaScript 物件而非字串,簡化了 CSS 屬性的操作。這不僅簡化了 CSS 操作,而且與 HTMLElement.style 相比,對效能的負面影響也更小。

通常,CSS 值可以在 JavaScript 中作為字串進行讀取和寫入,這可能既慢又笨拙。CSS 型別化物件模型 API 透過使用專門的 JS 物件來表示底層值,提供了與底層值互動的介面,這些物件比字串解析和連線更容易、更可靠地進行操作和理解。這對於開發者來說更簡單(例如,數值會以實際的 JS 數字形式反映,並且為其定義了具有單位意識的數學運算)。它通常也更快,因為值可以直接操作,然後可以廉價地轉換回底層值,而無需同時構建和解析 CSS 字串。

CSS 型別化 OM 既允許對分配給 CSS 屬性的值進行高效操作,又支援可維護的程式碼,這些程式碼既易於理解又易於編寫。

介面

CSSStyleValue

CSS 型別化物件模型 API 的 CSSStyleValue 介面是所有透過型別化 OM API 訪問的 CSS 值的基礎類。此類的例項可以在任何期望字串的地方使用。

CSSStyleValue.parse()

允許從 CSS 字串構造 CSSNumericValue 的方法。它將指定的 CSS 屬性設定為指定的值,並返回第一個值作為 CSSStyleValue 物件。

CSSStyleValue.parseAll()

設定特定 CSS 屬性所有出現項為指定值的方法,並返回一個 CSSStyleValue 物件陣列,每個物件包含一個提供的值。

StylePropertyMap

CSS 型別化物件模型 API 的 StylePropertyMap 介面提供了 CSS 宣告塊的表示,這是 CSSStyleDeclaration 的替代方案。

StylePropertyMap.set()

更改具有給定屬性的 CSS 宣告為給定值的方法。

StylePropertyMap.append()

向具有給定屬性和值的 StylePropertyMap 新增新 CSS 宣告的方法。

StylePropertyMap.delete()

StylePropertyMap 中刪除具有給定屬性的 CSS 宣告的方法。

StylePropertyMap.clear()

刪除 StylePropertyMap 中所有宣告的方法。

CSSUnparsedValue

CSS 型別化物件模型 API 的 CSSUnparsedValue 介面表示引用自定義屬性的屬性值。它包含字串片段和變數引用的列表。

CSSUnparsedValue() 建構函式

建立一個新的 CSSUnparsedValue 物件,該物件表示引用自定義屬性的屬性值。

CSSUnparsedValue.entries()

返回給定物件自身可列舉屬性的 [key, value] 對的陣列,順序與 for...in 迴圈提供的順序相同(區別在於 for-in 迴圈還會列舉原型鏈中的屬性)。

CSSUnparsedValue.forEach()

CSSUnparsedValue 中的每個元素執行一次提供的函式的方法。

CSSUnparsedValue.keys()

返回一個包含陣列中每個索引的鍵的新*陣列迭代器*物件的方法。

CSSKeywordValue 序列化

CSS 型別化物件模型 API 的 CSSKeywordValue 介面建立一個物件來表示 CSS 關鍵字和其他識別符號。

CSSKeywordValue() 建構函式

建構函式建立一個新的 CSSKeywordValue() 物件,該物件表示 CSS 關鍵字和其他識別符號。

CSSKeywordValue.value()

CSSKeywordValue 介面的屬性,用於返回或設定 CSSKeywordValue 的值。

CSSStyleValue 介面

CSSStyleValue 是所有 CSS 值表示的基礎類。子類包括

CSSImageValue

一個表示需要影像的屬性值的介面,例如 background-imagelist-style-imageborder-image-source

CSSKeywordValue

一個建立物件來表示 CSS 關鍵字和其他識別符號的介面。當在需要字串的地方使用時,它將返回 CSSKeyword.value 的值。

CSSMathValue

一個子類樹,表示比單個值和單位更復雜數值,包括

CSSNumericValue

一個表示所有數值都可以執行的操作的介面,包括

CSSPositionValue

表示需要位置的屬性值,例如 object-position。

CSSTransformValue

一個表示 transform 列表值的介面。它們“包含”一個或多個 CSSTransformComponent,這些元件表示單個transform 函式值。

CSSUnitValue

一個表示可以表示為單個單位或命名數字和百分比的數值的介面。

CSSUnparsedValue

表示引用自定義屬性的屬性值。它包含字串片段和變數引用的列表。

規範

規範
CSS 型別化 OM Level 1
# stylevalue-objects
CSS 型別化 OM Level 1
# the-stylepropertymap
CSS 型別化 OM Level 1
# cssunparsedvalue
CSS 型別化 OM Level 1
# keywordvalue-objects

瀏覽器相容性

api.CSSStyleValue

api.StylePropertyMap

api.CSSUnparsedValue

api.CSSKeywordValue

另見