jquery 样式表切换器 - 如何仅影响主题 css?

发布于 2024-10-11 04:02:09 字数 437 浏览 2 评论 0原文

我正在使用我为 jquery 样式表切换器找到的代码。

从这里: http://www.cssnewbie.com/simple-jquery-stylesheet-switcher /

现在我在使用这个切换器时遇到了问题。

我正在尝试使用它来加载主题 css 文件,同时保持加载主 css 文件。

我的主 css 文件包含我的网站结构,无论如何我都希望保持此文件的加载。

现在我尝试使用此切换器加载网站的替代颜色主题。唯一的问题是我的主 css 文件正在被卸载并被颜色主题替换。

我怎样才能拥有一个不改变的主CSS文件,并且让这个切换器只影响我的主题CSS文件?

谢谢

I'm using code I found for a jquery style sheet switcher.

From here: http://www.cssnewbie.com/simple-jquery-stylesheet-switcher/

Now I'm running into a problem using this switcher.

I’m trying to us this to load a theme css file while keeping my main css file loaded.

My main css file contains my sites structure, and I'd like to keep this file loaded no matter what.

Now I'm trying to use this switcher to load alternate color themes for the site. The only problem is that my main css file is being unloaded and replaced by the color themes.

How can I go about having one main css file that doesn’t change and have this switcher only effect my theme css files?

thanks

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

平定天下 2024-10-18 04:02:09

该文章中的第一个脚本替换了所有 元素中的样式表。您需要指定要更改的 (如该文章中的第二个示例,它使用类来区分)。

例如:

<link rel="stylesheet" type="text/css" href="main.css" />
<link class="theme" rel="stylesheet" type="text/css" href="theme1.css" />
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="jquery.cookie.js"></script>
<script type="text/javascript">
if($.cookie("css")) {
    $("link.theme").attr("href",$.cookie("css"));
}
$(document).ready(function() { 
    $("#nav li a").click(function() { 
        $("link.theme").attr("href",$(this).attr('rel'));
        $.cookie("css",$(this).attr('rel'), {expires: 365, path: '/'});
        return false;
    });
});
</script>

The first script in that article replaces the stylesheet in all <link> elements. You'll want to specify which <link> to change (as in the second example in that article which uses a class to differentiate).

For example:

<link rel="stylesheet" type="text/css" href="main.css" />
<link class="theme" rel="stylesheet" type="text/css" href="theme1.css" />
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="jquery.cookie.js"></script>
<script type="text/javascript">
if($.cookie("css")) {
    $("link.theme").attr("href",$.cookie("css"));
}
$(document).ready(function() { 
    $("#nav li a").click(function() { 
        $("link.theme").attr("href",$(this).attr('rel'));
        $.cookie("css",$(this).attr('rel'), {expires: 365, path: '/'});
        return false;
    });
});
</script>
萧瑟寒风 2024-10-18 04:02:09

您需要更改样式表切换器的Javascript文件/代码,并且您的标记

将这些行包含在您的html文件部分中,

<link rel="stylesheet" type="text/css" href="main-stylesheet.css"/>
<link rel="stylesheet" type="text/css" id="alt_style" href=""/>

ma​​in-stylesheet.css 替换为您的主样式表。另一个空链接标记将用于备用样式表。使用这个 Javascript 函数来代替:

$(document).ready(function() { 
    $("#nav li a").click(function() { 
        $("link#alt_style").attr("href",$(this).attr('rel'));
        return false;
    });
});

这应该可以解决问题。 :)

You need to change the Javascript file/code of the stylesheet switcher and your markup a bit

include these lines in the portion of your html file

<link rel="stylesheet" type="text/css" href="main-stylesheet.css"/>
<link rel="stylesheet" type="text/css" id="alt_style" href=""/>

Replace main-stylesheet.css by your main stylesheet . The other empty link tag would be used for the alternate stylesheet. Use this Javascript function instead :

$(document).ready(function() { 
    $("#nav li a").click(function() { 
        $("link#alt_style").attr("href",$(this).attr('rel'));
        return false;
    });
});

This should do the trick. :)

娇纵 2024-10-18 04:02:09

样式表提供了执行此操作的默认方法。所以你不想在 dom 中添加/删除样式节点,或者弄乱 href。这种默认方式是 rel="alternate stylesheet"。任何带有“alternate”的内容都是由客户端下载的,并且不会应用。所有浏览器都支持这一点,并且它已经存在很长时间了。

您可以添加一个类或其他 html 属性(我使用了 group="foo"、group="bar")来表示只能应用一个样式表的逻辑分组。关闭样式表的方法是将样式表节点的 disabled 属性更改为“true”。而开启的方式,是disabled=False。不要更改 rel 属性中的“alternate”。

Stylesheets come with a default way to do this. So you don't want to be adding/removing style nodes from the dom, or messing with the href. This default way is rel="alternate stylesheet". Anything with "alternate" is downloaded by the client, and not applied. All browsers support this and its been out there for a long time.

You can add a class, or other html attribute (I have used group="foo", group="bar") to denote logical grouping of which only one stylesheet can be applied. The way to turn a stylesheet off is to change the disabled attribute of the stylesheet node to 'true'. And the way to turn it on, is disabled=False. Don't change "alternate" in the rel attribute.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文