Javascript / Prototype:获取css值,而不引用DOM元素?

时间:2013-12-18 13:18:21

标签: javascript css prototypejs

是否可以通过CSS文件中定义的类名(例如类的宽度)检索样式属性,而无需从DOM中的实际元素中获取它?

2 个答案:

答案 0 :(得分:2)

答案 1 :(得分:1)

确实可能,但更复杂 您可以访问具有document.styleSheets属性的样式表。

在每个样式表中,您必须访问包含该样式表中所有CSS规则的cssRules属性,以便在DOM中的第一个样式表中获取第一个规则

document.styleSheets[0].cssRules[0];

要查找某个元素,你必须解析样式表,这是在某些情况下变得复杂的地方,因为样式是继承的,但是如果寻找某个选择器和某种样式:

var rules = document.styleSheets[0].cssRules,
    theRule = null;

for (var i=0; i<rules.length; i++) {
     if (rules[i].selectorText.toLowerCase() == '#myelement') {
         var width = rules[i].style.width;
         break;
     }
}