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-image、list-style-image或border-image-source。 CSSKeywordValue-
一個建立物件來表示 CSS 關鍵字和其他識別符號的介面。當在需要字串的地方使用時,它將返回
CSSKeyword.value的值。 CSSMathValue-
一個子類樹,表示比單個值和單位更復雜數值,包括
CSSMathInvert- 表示用作calc(1 / <value>)的 CSScalc()值。CSSMathMax- 表示 CSSmax()函式。CSSMathMin- 表示 CSSmin()函式。CSSMathNegate- 對傳入的值進行取反。CSSMathProduct- 表示透過在CSSNumericValue上呼叫add()、sub()或toSum()獲得的結果。CSSMathSum- 表示透過在CSSNumericValue上呼叫add()、sub()或toSum()獲得的結果。
CSSNumericValue-
一個表示所有數值都可以執行的操作的介面,包括
CSSNumericValue.add- 將提供的數字新增到CSSNumericValue。CSSNumericValue.sub- 從CSSNumericValue中減去提供的數字。CSSNumericValue.mul- 將提供的數字乘以CSSNumericValue。CSSNumericValue.div- 用提供的值除以CSSNumericValue,如果值為0則丟擲錯誤。CSSNumericValue.min- 返回傳遞的最小值CSSNumericValue.max- 返回傳遞的最大值CSSNumericValue.equals- 如果所有值都是完全相同的型別和值,順序也相同,則返回 true。否則返回 falseCSSNumericValue.to- 將value轉換為具有指定*單位*的其他值。CSSNumericValue.toSumCSSNumericValue.typeCSSNumericValue.parse- 從 CSS 字串解析數字並返回。
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
載入中…