是否可以在不从DOM中获取实际元素的情况下,通过类名(例如类的宽度)从CSS文件中检索样式属性?
是否可以在不从DOM中获取实际元素的情况下,通过类名(例如类的宽度)从CSS文件中检索样式属性?
这确实是可能的,但更加复杂。
您可以通过document.styleSheets
属性访问样式表。
在每个样式表中,您都可以访问cssRules属性,其中包含该样式表中的所有CSS规则,因此要获取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;
}
}
rules[i].selectorText
获取选择器文本,例如 #elementID
或 .class:hover
等。需要注意的是,像这样访问样式表通常是一个不好的主意,并且很难做到正确。 - adeneo