This feature is obsolete. Although it may still work in some browsers, its use is discouraged since it could be removed at any time. Try to avoid using it.

The obsolete CSSStyleSheet interface's addRule() legacy method adds a new rule to the stylesheet. You should avoid using this method, and should instead use the more standard insertRule() method.


var result = cssStyleSheet.addRule(selector, styleBlock, index);


A DOMString specifying the selector portion of the CSS rule. The default is the string undefined.
A DOMString indicating the style block to apply to elements matching the selector. The default is the string undefined.
index Optional
An optional index into the stylesheet's CSSRuleList at which to insert the new rule. If index is not specified, the next index after the last item currently in the list is used (that is, the value of cssStyleSheet.cssRules.length).

Return value

Always returns -1.

Note that due to somewhat estoteric rules about where you can legally insert rules, it's possible that an exception may be thrown. See insertRule() for more information.

Usage notes

This method is implemented by browsers by constructing a string using the template literal `${selector}{${styleBlock}}`, then passing it into the standard insertRule() method.

Therefore, given existing code such as the following:

cssStyleSheet.addRule(selector, styles, 0);

You can rewrite this to use the more standard insertRule() like this:

cssStyleSheet.insertRule(`${selector} {${styles}}`, 0);


Specification Status Comment
CSS Object Model (CSSOM)
The definition of 'CSSStyleSheet.addRule()' in that specification.
Working Draft

Browser compatibility

Update compatibility data on GitHub
ChromeEdgeFirefoxInternet ExplorerOperaSafariAndroid webviewChrome for AndroidFirefox for AndroidOpera for AndroidSafari on iOSSamsung Internet
Chrome Full support YesEdge Full support 12Firefox Full support 68IE Full support 9Opera Full support YesSafari Full support YesWebView Android Full support YesChrome Android Full support YesFirefox Android Full support 68Opera Android Full support YesSafari iOS Full support YesSamsung Internet Android Full support Yes


Full support  
Full support
Deprecated. Not for use in new websites.
Deprecated. Not for use in new websites.

See also