CSSRuleList - 包含 CSSRule 对象的有序集合
概要
CSSRuleList 是一个(间接修改)类似数组的对象,它包含 CSSRule 对象的有序集合。
描述
每个 CSSRule 可以通过 rules.item(index),或者简单通过 rules[index] 访问,其中 rules 是实现 CSSRuleList 接口的对象(如 CSSStylesheet.cssRules),index 是规则的基于 0 的索引,它按 CSS 样式表中的顺序排列。列表中的规则数量是 rules.length。
请注意,它是间接修改的(可更改但只包含读取方法),不可直接在列表中添加或删除规则,而只能通过其父级样式表从列表中移除或删除规则。事实上,.insertRule() 和 .deleteRule() 甚至不是 CSSRuleList 的方法,而只是 CSSStyleSheet 的方法。但是,如果出于某种原因,列表确实需要修改,但它没有父样式表(可能是列表的活动拷贝),它不能被分配给一个父样式表(因为它没有这样的属性),也不能这样操作(因为 stylesheet.cssRules 是只读的)。它必须按规则的顺序逐个插入到一个父样式表中。
实例
// 获取第一个样式表的第一条规则
var firstRule = document.styleSheets[0].cssRules[0];
相关链接
CSSRuleList 的实现
CSSOM 中有多个属性会返回 CSSRuleList。它们是:
-
CSSStyleSheet的cssRules属性 -
CSSMediaRule的cssRules属性 -
CSSKeyframesRule的cssRules属性 -
CSSMozDocumentRule的cssRules属性