CSS 类型对象模型 API

CSS 类型对象模型 API 通过将 CSS 值作为类型化的 JavaScript 对象而不是字符串公开,简化了 CSS 属性操作。这不仅简化了 CSS 操作,而且与 HTMLElement.style 相比,减少了对性能的负面影响。

通常,CSS 值可以在 JavaScript 中以字符串形式读取和写入,这可能很慢且麻烦。CSS 类型对象模型 API 提供了与底层值交互的接口,通过使用专门的 JS 对象来表示它们,这些对象可以比字符串解析和连接更容易且更可靠地进行操作和理解。这对于作者来说更容易(例如,数值以实际的 JS 数字反映,并为其定义了单位感知的数学运算)。它通常也更快,因为值可以被直接操作,然后廉价地转换回底层值,而无需同时构建和解析 CSS 字符串。

CSS 类型对象模型既允许高效地操作分配给 CSS 属性的值,又能实现易于维护、更易理解和编写代码。

接口

CSSStyleValue

CSS 类型对象模型 API 的 CSSStyleValue 接口是通过类型化对象模型 API 访问的所有 CSS 值的基类。此类的实例可以在任何需要字符串的地方使用。

CSSStyleValue.parse()

CSSStyleValue 接口的 parse() 方法允许从 CSS 字符串构建 CSSNumericValue。它将特定 CSS 属性设置为指定的值,并将第一个值作为 CSSStyleValue 对象返回。

CSSStyleValue.parseAll()

CSSStyleValue 接口的 parseAll() 方法将特定 CSS 属性的所有出现设置为指定的值,并返回一个 CSSStyleValue 对象数组,每个对象包含一个提供的值。

StylePropertyMap

CSS 类型对象模型 API 的 StylePropertyMap 接口提供了 CSS 声明块的表示形式,它是 CSSStyleDeclaration 的替代方案。

StylePropertyMap.set()

StylePropertyMap 接口的方法,用于将具有给定属性的 CSS 声明更改为给定的值。

StylePropertyMap.append()

添加一个新的 CSS 声明到 StylePropertyMap 中,具有给定的属性和值。

StylePropertyMap.delete()

从 StylePropertyMap 中删除具有给定属性的 CSS 声明。

StylePropertyMap.clear()

删除 StylePropertyMap 中的所有声明。

CSSUnparsedValue

CSS 类型对象模型 API 的 CSSUnparsedValue 接口表示引用自定义属性的属性值。它由字符串片段和变量引用的列表组成。

CSSUnparsedValue() 构造函数

创建一个新的 CSSUnparsedValue 对象,该对象表示引用自定义属性的属性值。

CSSUnparsedValue.entries()

返回给定对象自身可枚举属性 [键,值] 对的数组,顺序与 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 类型对象模型级别 1
# stylevalue-objects
CSS 类型对象模型级别 1
# the-stylepropertymap
CSS 类型对象模型级别 1
# cssunparsedvalue
CSS 类型对象模型级别 1
# keywordvalue-objects

浏览器兼容性

api.CSSStyleValue

BCD 表格仅在启用了 JavaScript 的浏览器中加载。

api.StylePropertyMap

BCD 表格仅在启用了 JavaScript 的浏览器中加载。

api.CSSUnparsedValue

BCD 表格仅在启用了 JavaScript 的浏览器中加载。

api.CSSKeywordValue

BCD 表格仅在启用了 JavaScript 的浏览器中加载。

另请参阅