当前位置: 首页 > 面试题库 >

用javascript修改CSS规则对象

柯建业
2023-03-14
问题内容

我想知道是否有可能在不进行内联样式的情况下修改Css样式表声明。

这是一个简单的例子:

<style>
    .box {color:green;}
    .box:hover {color:blue;}
</style>

<div class="box">TEXT</div>

这给出了一个蓝色的书写框,在悬停时变为绿色。

如果我为颜色提供内联样式,则悬停行为将丢失:

<div class="box" style="color:red;">TEXT</box>

无论如何,这都会显示一个红色的书写框。

所以我的问题是,如何能访问和修改css声明对象,而不是用内联样式覆盖样式。

谢谢,


问题答案:

您可以使用与cssRules原始样式表相对应的DOM样式表对象上的来修改规则。

var sheet = document.styleSheets[0];
var rules = sheet.cssRules || sheet.rules;

rules[0].style.color = 'red';

请注意,IE使用rules代替cssRules



 类似资料:
  • 主要内容:1、常规规则,2、嵌套规则在 CSS 中包含两种语法规则: 普通规则:由选择器、属性和值构成,在之前的学习中我们主要使用的就是这种规则; @规则:以开头后面跟随一个关键字的形式构成,也被称为“AT规则”,根据使用方法的不同又可以分为“常规规则”与“嵌套规则”两种。 本节我们主要来介绍一下 CSS 中的 @ 规则。 1、常规规则 所谓“常规规则”指的是语法类似下面的规则: @[KEYWORD] (RULE); 1) @cha

  • 问题内容: 谁能帮助我,我有两个问题。 我想做的是使用jQuery动态更改CSS类规则。 在上面的示例中,我有一个现在使用jQuery 命名的类,我想仅通过不添加css内联来更改字体大小,而不更改颜色。 我要创建更改并将其保存到文件,请记住,将存在完整的样式表或没有类名将保存在文件中。 我该怎么做才是最简单,更好的方法? 谢谢! 问题答案: 据我所知,没有jQuery的方法可以做到这一点。可能有一

  • 问题内容: 我有一个CSS课 我想使用Jquery在事件上执行类似的操作: 这行不通。这是错误的方法吗?我应该使用addClass()和removeClass()吗? 编辑:我想出了我的问题。实际上,此命令是有效的。在我的特定应用程序中,在使用命令之前,我没有使用类创建元素,因此在创建元素时,没有任何改变。 基本上,此命令不会更改CSS样式规则,只会更改使用该类的元素。 问题答案: 将在页面上找到

  • 问题内容: 我想返回一个包含CSS规则所有内容的字符串,就像您在嵌入式样式中看到的格式一样。我希望能够在不知道特定规则中包含什么的情况下执行此操作,因此我不能仅通过样式名称(如等)将它们拉出。 CSS: 到目前为止的代码: 问题答案: 以scunliffe的答案为基础:

  • 问题内容: 是否可以动态更改CSS规则集(例如,某些JS,当用户单击窗口小部件时,它将更改CSS规则集) 这个特定的CSS规则集应用于页面上的许多元素(通过类选择器),我想在用户单击窗口小部件时对其进行修改,以使具有 类的 所有元素都发生变化。 问题答案: 您可以,但是相当麻烦。关于如何执行此操作的最佳参考是以下文章:带有Javascript的Totally PwnCSSWeb存档链接。 我设法使