2012-12-28 50 views
0

我想使用jQuery在HTML文件中用#222(新颜色)替换所有#111颜色(示例颜色)。我想通过单击来改变网站的主题。我该如何改变jQuery的所有颜色?

初始CSS:

body{ 
    bg-color:#111; 
    color:#111; 
} 
div1{ 
    bg-color:#111; 
    color:#111; 
} 
. 
. 
. 
divn{ 
    bg-color:#111; 
    color:#111; 
} 

click事件之后:

body{ 
    bg-color:#222; 
    color:#222; 
} 
div1{ 
    bg-color:#222; 
    color:#222; 
} 
. 
. 
. 
divn{ 
    bg-color:#222; 
    color:#222; 
} 
+0

你到目前为止试过的东西? – Hkachhia

回答

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'); 
+0

我不能这样做。我想为Firefox插件 –

+0

这么做,所以你的FF插件可能有一些父元素。以与我描述的'body'相同的方式更改此父元素的css类 – Samich

+0

好的谢谢@Samich –

1

更改主题与点击最好的办法是给一些类,你的身体标记。

在你的CSS

然后:

body{ color: #111;} 
body.secondTheme{color : #222; } 

而且可以绑定jQuery中更改点击事件

$("#yourButton").click(function() { 
    $("body").toggleClass("secondTheme"); 
}); 
0

正确的方式做,这是分配一个CSS类每个HTML你想改变颜色的元素。

HTML:

<div class="colorChange"> 

CSS:

.colorChange{ color:#111;} 

然后,你将有一个按钮,触发一个JavaScript函数,这将改变colorChange类的颜色属性,我会建议使用jQuery

$(".colorChange").css('color', '#222'); 
0

如果你可以在类之间切换,我认为会好起来的;如果你不能/不想让你可以使用.filter功能jQuery的:

$('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属性进行相同操作。