是在 JavaScript 中更改样式以针对每个元素执行此操作的唯一方法吗?

Stu*_*ley 4 html javascript css

我一直在研究一些不同的东西,我想使用 JavaScript 来全局调整样式。我想通过更改决定元素样式的 CSS 规则来做到这一点(类似于通过 Webkit 中的检查器执行此操作),但是在访问https://developer.mozilla.org/en/DOM/CSSStyleRule之后,我现在不知道这是否可能:

style

返回CSSStyleDeclaration规则的对象。只读。

那么,有没有办法在 JavaScript 中更改更高级别的样式呢?

Eli*_*rey 5

要修改现有样式,请在要修改的或元素document.styleSheets.sheet属性中或从中找到样式表。然后修改它们所在的任何规则中的属性(请参阅https://developer.mozilla.org/en/DOM/CSSRuleList)。我建议不要使用 CSSOM 来修改属性,因为浏览器对通过 CSSOM 修改 CSS 属性的支持是可怜的(没有任何浏览器支持它)。相反,只需设置一个字符串值。<style><link>

如果您只想插入新规则,只需从上述方法中获取样式表,或者document.documentElement.appendChild(document.createElementNS("http://www.w3.org/1999/xhtml","style")).sheet. 然后使用insertRule添加您的规则。