这组代码工作正常,但我想知道我们是否可以使用变量来存储样式表的属性,如字母间距,颜色等...
function movespacing() {
document.styleSheets[0].cssRules[0].style.color = 'black';
}

h2 {
color: blue;
}

<h2>letter-spacing: -5px</h2>
<input type="button" value="click to see animation" onclick="movespacing();" />
&#13;
如您所知,一旦您点击按钮,该字词的颜色就会出现字母间距&#39;将从以前的颜色变为黑色。 现在,我确实尝试将css属性存储到某个变量中,如
var cssColor = document.styleSheets.cssRules[0].style.color;
...然后
cssColor = "green";
它没有用..请告诉我原因
还有一个css属性,比如字母间距,我也尝试了但是,控制台给了我一个关于无效左手值赋值的错误:
document.styleSheets[0].cssRules[0].style.letter-spacing = '5px';
答案 0 :(得分:0)
除特殊情况外,您不需要也不应该通过更改样式表来操作样式。我不知道document.styleSheets[0].cssRules[0]
指向哪个规则(并且它可能会根据您加载的样式表及其中的规则顺序而改变),但是如果您想要更改h2
的颜色对于黑色,正常的做法是CSS如下。
<h2 id="h2">
.black { color: black; }
document.getElementById('h2') . classList . add('black');
根据您的浏览器或您是否使用jQuery,有不同的方法来添加类。例如,您可以在jQuery中使用$('#h2').addClass('black')
。
要更改颜色,而不是记住样式表中的旧值,并更改样式表,只需删除'black'
类。
还有其他一些事情你做错了:
要从style
对象访问属性,您需要使用camelcased名称,如style.letterSpacing
中所示。您的方法(style.letter-spacing
)会导致语法错误(连字符-
将被解释为减号)。
您无法通过将对象的属性分配给变量(var cssColor = ...
),然后更改该变量的值来更改对象的属性。为了过分简化,JavaScript变量不是&#34;指针&#34;,至少不是你想要的方式。