This article needs a technical review. How you can help.
Summary
A CSSRuleList
is an (indirect-modify only) array-like object containing an ordered collection of CSSRule
objects.
Description
Each CSSRule
can be accessed as rules.item(index),
or simply rules[index]
, where rules
is an object implementing the CSSRuleList
interface (such as CSSStylesheet
.cssRules)
, and index
is the 0-based index of the rule, in the order as it appears in the style sheet CSS. The number of rules in the list is rules.length
.
Note that being indirect-modify (changeable but only having read-methods), rules are NOT added or removed from the list directly, but instead here, only via its parent stylesheet. In fact, .insertRule()
and .deleteRule()
are not even methods of CSSRuleList, but only of CSSStyleSheet
. If however, for some reason the list does need to be modified but has no parent stylesheet (perhaps being a livecopy of a list that does), it cannot just be assigned one (as it has no such property), and neither can it be assigned to one (as stylesheet.cssRules
is read-only), but it must unfortunately be inserted into one, rule by rule, and unless combining lists, after any existing list therein is deleted, rule by rule.
Example
// get the first style sheet’s first rule var first_rule = document.styleSheets[0].cssRules[0];
See also
CSSRuleList implementations
There are multiple properties in the CSSOM that will return a CSSRuleList
. They are:
CSSStyleSheet
propertycssRules
CSSMediaRule
propertycssRules
CSSKeyframesRule
propertycssRules
CSSMozDocumentRule
propertycssRules