This article needs a technical review. How you can help.


A CSSRuleList is an (indirect-modify only) array-like object containing an ordered collection of CSSRule objects.


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.


// 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:


Document Tags and Contributors

 Last updated by: pcat,