Javascript 如何在点击时更改整个页面/网站的CSS?

Javascript 如何在点击时更改整个页面/网站的CSS?,javascript,html,css,stylesheet,Javascript,Html,Css,Stylesheet,是否有可能在一个页面上有3-4个CSS,然后在任何情况下,比如说单击,更改整个网页的CSS。通过这种方式,我们可以让用户改变主题。我知道我们可以通过以下方式更改元素的css: $("#myElementID").removeClass("class1").addClass("class2"); (参见第五个问题)最后决定最简单的方法就是刷新页面并设置新的CSS服务器端。是的,这是可能的。通常,您要做的是编写一个JavaScript函数,该函数将更改、添加或删除文档的中的样式表。为了让体验更好一

是否有可能在一个页面上有3-4个CSS,然后在任何情况下,比如说单击,更改整个网页的CSS。通过这种方式,我们可以让用户改变主题。我知道我们可以通过以下方式更改元素的css:

$("#myElementID").removeClass("class1").addClass("class2");

(参见第五个问题)最后决定最简单的方法就是刷新页面并设置新的CSS服务器端。

是的,这是可能的。通常,您要做的是编写一个JavaScript函数,该函数将更改、添加或删除文档的
中的样式表。为了让体验更好一点,您通常会将用户的偏好存储在cookie中。这里有一个


当然。。。您可能需要查看的源。

CSS通过'link'标记嵌入到DOM中,因此您可以找到此链接并添加/删除

下面的代码显示了如何删除和添加新的方法(我使用的是MS AJAX,请参阅$get方法,但您可以用纯DOM或其他方言替换它):


通常最好加载外部样式表(附加):


但是,如果您需要动态创建一组样式,您也可以在DOM中构建并附加一个节点:

但是我想在@client-side执行此操作,我的意思是使用jQuery或Javascript查看jQuery的jStyler plguin,源代码非常简短且易于理解。删除并添加
链接rel=“stylesheet”
是否可以做到这一点?不确定,但我必须给它一个try@Rakesh你是说类型/id/字符集的冗余?如果是这样的话,字符集确实是多余的,但某些浏览器强烈建议使用该类型(可能我对种类的看法是错误的,但IE需要它)。最后,脚本逻辑需要“id”。
    var head = document.getElementsByTagName('head')[0];

    var oldLink = $get("nameOfLink", head);
    if(oldLink!=null) 
        head.removeChild(oldLink); //remove old entry
    var s = document.createElement('link');
    s.id="nameOfLink";
    s.type = 'text/css';
    s.rel="stylesheet";
    s.charset ='utf-8';
    s.href = "http://your-provided-url";
    head.appendChild(s);