JavaScript. Подробное руководство, 6-е издание, стр. 246
Элементами массива
<b>cssRules[]</b><b>rules[]</b><b>CSSRule</b><b>CSSRule</b><b>rules[]</b>Объект
<b>CSSRule </b><b>selectorText</b><b>style</b><b>CSSStyleDeclaration</b><b>CSSStyleDeclaration</b><b>CSSStyleDeclaration</b><b>cssText</b><b>CSSStyleDeclaration</b>В дополнение к возможности получения и изменения существующих правил таблиц стилей имеется возможность добавлять правила в таблицу стилей и удалять их из таблицы. Стандартный прикладной интерфейс определяет методы
<b>insert-Rule()</b><b>deleteRule(),</b><b>document.styleSheets[0].insertRule("H1 { text-weight: bold; }", 0);</b>Броузер IE не поддерживает методы
<b>insertRule()</b><b>deleteRule(),</b><b>addRule()</b><b>removeRule().</b><b>addRule()</b>Следующий пример реализует обход правил в таблице стилей и демонстрирует API, внося несколько сомнительных изменений в таблицу:
<b>var ss = document.styleSheets[0]; // Извлечь первую таблицу стилей</b><b>var rules = ss.cssRules?ss.cssRules:ss.rules; // Извлечь правила</b><b>for(var і = 0; і < rules.length; і++) { // Цикл по этим правилам</b><b> var rule = rules[і];</b><b> if (!rule.selectorText) continue; // Пропустить @import и др. директивы</b><b> var selector = rule.selectorText; // Селектор</b><b> var ruleText = rule.style.cssText; // Стили в текстовом виде</b><b> // Если правило применяется к элементам h1, применить его к элементам h2 </b><b> // Учтите, что этот прием сработает, только если селектор </b><b> // в точности будет иметь вид "h1"</b><b> if (selector == "hi") {</b><b> if (ss.insertRule)</b><b> ss.insertRule("h2 {" +ruleText+ "}", rules.length);</b><b> else if (ss.addRule) ss.addRule("h2", ruleText, rules.length);</b><b> }</b><b> // Если правило устанавливает свойство text-decoration, удалить его.</b><b> if (rule.style.textDecoration) {</b><b> if (ss.deleteRule) ss.deleteRule(i);</b><b> else</b><b> if (ss.removeRule) ss.removeRule(i);</b><b> i--; // Скорректировать переменную цикла, поскольку прежнее правило с</b><b> //индексом i+1 теперь стало правилом с индексом і</b><b> }</b><b>}</b>16.6.3. Создание новых таблиц стилей
Наконец, имеется возможность создавать совершенно новые таблицы стилей и добавлять их в документ. В большинстве броузеров эта операция выполняется с помощью стандартных приемов, реализованных в модели DOM: создается новый элемент
<b><style></b><b><head>,</b><b>innerHTML</b><b>CSSStyleSheet</b><b>document.createStyleSheet()</b><b>cssText</b>Пример 16.6. Создание новой таблицы стилей
<b>// Добавляет таблицу стилей в документ и заполняет ее указанными стилями.</b><b>// Аргумент styles может быть строкой или объектом. Если это строка.</b><b>// она интерпретируется как текст таблицы стилей. Если это объект, то каждое</b><b>// его свойство должно определять правило стиля, добавляемое в таблицу.</b><b>// Именами свойств являются селекторы, а их значениями - соответствующие стили</b>