我想使用jQuery在html文件中用#111
(新颜色)替换所有#222
颜色(示例颜色)。我想通过单击来改变网站的主题。
初始css:
body{
bg-color:#111;
color:#111;
}
div1{
bg-color:#111;
color:#111;
}
.
.
.
divn{
bg-color:#111;
color:#111;
}
点击活动后:
body{
bg-color:#222;
color:#222;
}
div1{
bg-color:#222;
color:#222;
}
.
.
.
divn{
bg-color:#222;
color:#222;
}
答案 0 :(得分:6)
这里最好的解决方案是为嵌套元素定义2个带有级联样式的css类。
body { color:#111 }
.theme1 { color: #222; }
.theme2 { color: #333; }
.theme2 a { color: #003366; }
...
然后您可以更改body
元素的css类,页面上的所有元素都将继承新样式。
// theme1 color
<body class="theme1">
...
</body>
// theme2 color
<body class="theme2">
...
</body>
jquery代码:
$('body').addClass('theme1');
答案 1 :(得分:1)
通过一次点击更改主题的最佳方法是为您的身体标签提供一些课程。
然后在你的css中:
body{ color: #111;}
body.secondTheme{color : #222; }
你可以在jquery中为click事件绑定更改
$("#yourButton").click(function() {
$("body").toggleClass("secondTheme");
});
答案 2 :(得分:0)
执行此操作的正确方法是为要更改颜色的每个html元素指定一个css类。
HTML:
<div class="colorChange">
CSS:
.colorChange{ color:#111;}
然后你会有一个触发javascript函数的按钮,它会改变colorChange类的颜色属性,我建议使用jQuery:
$(".colorChange").css('color', '#222');
答案 3 :(得分:0)
如果你可以在课程之间切换,我认为它会更好;如果您不能/不希望您可以使用jQuery中的.filter
函数:
$('yourselector').filter(function(){
return $(this).css('color')=='rgb(0, 1, 17)';
}).css('color','rgb(0, 2, 34)');
这会将yourselector
选择的所有元素都用颜色rgb(0, 1, 17)
更改为颜色rgb(0, 2, 34)
。
显然你也可以对其他css属性做同样的事情。