Я тут как раз недавно написал небольшую функцию для кроссбраузерного доступа к стилям во внешний файлах. Вот, если кому-то нужно
function getCSSRule(ruleIndex, tabIndex) {
if (ruleIndex === undefined) throw new Error("Rule index must be set");
var sheet = document.styleSheets[tabIndex || 0];
if (!sheet) throw new Error("This styleSheet is not defined");
var cssRule = sheet.rules ? sheet.rules[ruleIndex] : sheet.cssRules[ruleIndex];
return {
cssText: function (text) {
if (!text) {
var cssText = cssRule.cssText || cssRule.style.cssText;
return cssText.toLowerCase().replace(/.*\{(.*)\}/ig, "$1");
} else {
cssRule.style.cssText = text;
}
},
getProperty: function (name) {
return cssRule.style[name];
},
getSelector: function () {
return cssRule.selectorText;
}
}
}
getCSSRule(0).cssText("color: red;");
alert( getCSSRule(0).getProperty("color") );
Единственный минус, ишак путает номера правил если одно правило применено к нескольким селекторам, разделённым запятыми. Пока думаю как вылечить)