可以通过javascript以编程方式创建/更改CSS样式,但这通常不是解决问题的最简单方法,因为不同的浏览器以不同的方式进行,所以跨浏览器支持有点痛苦,除非您已经有一个库那个摘要。通常可以看到如何在此处执行此操作:http://www.quirksmode.org/dom/changess.html。
如果预先知道要切换的样式,那么在它们之间切换的最简单方法是在样式表中定义这两种样式,并使用不同的类指定来触发一个样式与另一个样式。
如果您只是试图影响一个对象或少量对象,您可以简单地在受影响的对象上通过javascript添加或删除类名。
如果有大量的对象,那么我所做的就是在body标签上添加一个类名,以触发替代样式对所有受影响的对象生效。它的工作原理是这样的:
很多这些在你的HTML:
<div class="foo"></div>
<div class="foo"></div>
<div class="foo"></div>
<div class="foo"></div>
然后,有两个预先定义的CSS规则,这样的顺序:
.foo {background-color: #777;}
.alternate .foo {background-color: #F00;}
然后,使用Javascript,任何时候你想改变为替代风格,你只需要这样做(使用jQuery或任何最喜欢的类库):
$(document.body).addClass("alternate");
要返回到原来的风格,你可以删除类:
$(document.body).removeClass("alternate");
这并不一定要添加到body标签 - 它可以被添加到所有受影响的对象的任何共同的父。
我个人觉得这比编程创建样式规则简单得多,它将实际样式信息保留在代码之外(非程序员的设计人员可以更容易地访问它)。
您可以在这里看到实际这种技术:http://jsfiddle.net/jfriend00/UXKvg/
“只读”实际上意味着你不能直接重新定义它(例如'element.style = {background:“black”}')。您可以修改'.style'的属性(例如'element.style.background =“black”')。 –