jon*_*izh 11 javascript css oocss
可能重复:
从Javascript更改CSS规则集
我想知道是否有可能修改Css样式表声明而不进行内联样式.
这是一个简单的例子:
<style>
.box {color:green;}
.box:hover {color:blue;}
</style>
<div class="box">TEXT</div>
Run Code Online (Sandbox Code Playgroud)
这会给出一个蓝色的书写框,在悬停时变成绿色.
如果我为颜色提供内联样式,则悬停行为将丢失:
<div class="box" style="color:red;">TEXT</box>
Run Code Online (Sandbox Code Playgroud)
无论如何,这会给出一个红色的书写框.
所以我的问题是,如何访问和修改css声明对象而不是用内联方法覆盖样式.
谢谢,
Asa*_*din 27
您可以使用与cssRules原始样式表对应的DOM样式表对象来修改规则.
var sheet = document.styleSheets[0];
var rules = sheet.cssRules || sheet.rules;
rules[0].style.color = 'red';
Run Code Online (Sandbox Code Playgroud)
请注意,IE使用rules而不是cssRules.
这是一个演示:http://jsfiddle.net/8Mnsf/1/
只需定义您的类,并使用 javascript 为 HTML 元素分配/删除类。
直接为元素分配样式,具有最高优先级,它将覆盖所有其他 CSS 规则。
编辑:您可能想要使用 cssText 属性,请参阅此处的示例cssText 属性