addRule Method
Creates a new rule for a style sheet.
Syntax
plNewIndex = object.addRule(sSelector, sStyle [, iIndex])
Parameters
sSelector Required. String that specifies the selector for the new rule. Single contextual selectors are valid. For example, "div p b" is a valid contextual selector. sStyle Required. String that specifies the style assignments for this style rule. This style takes the same form as an inline style specification. For example, " color:blue" is a valid style parameter.iIndex Optional. Integer that specifies the zero-based position in the rules collection where the new style rule should be placed.
- -1
- Default. The rule is added to the end of the collection.
Return Value
Reserved. Always returns
-1.
Remarks
You can add up to 4095 style rules with the addRule method. After that, the method returns an "Invalid Argument" exception .
You can apply rules to a disabled styleSheet, but they do not apply to the document until you enable the styleSheet.
Example
This example uses the addRule method to add a rule that sets all bold text appearing in a DIV to the color blue.
<STYLE> </STYLE> <DIV> Internet Explorer makes <B>HTML</B> dynamic. </DIV> <SCRIPT> var new_rule; new_rule = document.styleSheets[0].addRule("DIV B", "color:blue", 0); </SCRIPT>
Standards Information
There is no public standard that applies to this method.
Applies To
styleSheet, CSSStyleSheet Constructor
See Also
var dynamicStyle = document.createElement( "style" );
dynamicStyle.type = "text/css";
dynamicStyle.media = "print";
dynamicStyle.styleSheet.addRule( "#_ctl0__searchRow", "display:none;" );
Returns "Invalid argument."
And if you use dynamicStyle.styleSheet.cssText = "#_ctl0__searchRow {display:none;}";
It sets cssText to "UNKNOWN {DISPLAY: none}"
- 9/9/2011
- livlif2fullest
- 9/9/2011
- livlif2fullest
document.styleSheets[0].addRule("body", "display:none");
The following selector won't work:
document.styleSheets[0].addRule("body>table:nth-of-type(2)", "display:none");
You get an "Invalid argument" error message.
- 4/20/2009
- calande
document.styleSheets[0].addRule("body", "display:none");
The following selector won't work:
document.styleSheets[0].addRule("body>table:nth-of-type(2)", "display:none");
You get an "Invalid argument" error message.
- 4/20/2009
- calande
<style></style>
<div alt='hi'></div>
<script>
var new_rule;
new_rule = document.styleSheets[0].addRule("div[alt]", "color:blue", 0);
</script>
tested under: IE 6.0
the same is for > selector... :/
You can only create 4095 style rules with this method. After that, it throws an "Invalid argument" exception.
The same limit applies even if you append style rules using the cssText property.
BTW, the following code is much faster than repeatedly invoking addRule for each new rule.
var ss = document.createElement('STYLE');
document.documentElement.firstChild.appendChild(ss);
ss.cssText = '(a very long list of style rules)';
- 9/22/2007
- John Sudds [Microsoft]
- 10/2/2007
- John Sudds [Microsoft]
