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:


Browser compatibilityUpdate compatibility data on GitHub

Chrome Edge Firefox Internet Explorer Opera Safari
Basic support 1 ? 1 ? Yes ?
length 1 ? 25 ? Yes ?
item 1 ? 1 ? Yes ?
Android webview Chrome for Android Edge Mobile Firefox for Android Opera for Android iOS Safari Samsung Internet
Basic support Yes Yes ? 4 Yes ? ?
length Yes Yes ? 25 Yes ? ?
item Yes Yes ? 4 Yes ? ?

© 2005–2018 Mozilla Developer Network and individual contributors.
Licensed under the Creative Commons Attribution-ShareAlike License v2.5 or later.