的Javascript:在ID更改CSS子节点
答案或许是比较简单的,但我刚开始使用JavaScript和我似乎无法达到我的目的:的Javascript:在ID更改CSS子节点
我有这一块的CSS代码:
#tabmenu li a {
background: #ACBACF;
}
现在我想改变背景,但不仅仅是#tabmenu,li或a,而是所有这些背景。 如何用Javascript做到这一点?
编辑: 这是一个带背景的按钮,我想知道如何更改css部分的值。所以它不仅是背景,而且还有填充和东西,但为了简单起见,让我们说我只是想用javascript改变背景。
HTML:
<ul id="tabmenu">
<li>
<a href="#index">Home</a>
</li>
</ul>
编辑2: 我不能改变的HTML或CSS,因为我想创建一个userscript(Greasemonkey的)。
我不认为直接从Javascript设置CSS是最好的方法。它导致大量的内联代码,并且不能很好地处理您在外部文件中定义的样式。在使用多字符串值时,在Javascript需要行结束
var style = document.createElement("style")
style.setAttribute("type", "text/css");
style.innerHTML = "#tabmenu li a {\
background: red;\
}";
document.getElementsByTagName("head")[0].appendChild(style)
的“\”:如果你打算对CSS的沉重修改,我建议注射自定义样式标签的DOM内部。最后,如果你遵循这条路线,我会建议在文本编辑器中编写css代码,然后用类似https://csscompressor.net/(这会给你一个单行字符串)打包它并复制粘贴结果在括号之间。
非常感谢!这个伎俩。这不是真正的“重大修改”,只是改变现有的CSS规则。无论如何,我可以继续我的剧本。再次感谢! – Tom 2013-05-10 17:28:56
你能定义它们吗? – PSL 2013-05-10 16:35:00
请发布一些HTML代码,并更具体地说明你想达到的目标。 – gkalpak 2013-05-10 16:35:52
那么一次为所有三个设置CSS,使用逗号来分辨它们 '#tabmenu,#tabmenu li,#tabmenu li a {background:#ACBACF;}' – gbtimmon 2013-05-10 16:40:48