【发布时间】:2013-08-14 16:45:55
【问题描述】:
我有一个需要加载两个主题的网站。第二个主题可以由用户打开/关闭。我目前正在通过在链接中使用disabled 标记来完成此操作,如下所示:
<link rel="stylesheet" href="{{main css}}">
<link rel="stylesheet" title="theme-white" href="{{2nd theme css}}" disabled>
然后我在 JavaScript 中切换 disabled。
这在 Safari (Mac)、Chrome (Mac/Windows) 和 IE10 中运行良好。但是,Firefox(Mac 和 Windows)似乎在页面加载时忽略了 disabled 标记,并在初始加载时显示第二个主题(因为它是第二个加载的)。但是,当我手动切换 disabled 时,Firefox 会响应标签并开始打开/关闭第二个主题。
我怎样才能实现这个目标?
【问题讨论】:
-
如果你只是切换样式表的顺序呢?这样,所有浏览器,无论它们最初是否识别为禁用,仍将显示主 CSS。
-
你能告诉我们其余的代码吗?
-
不幸的是,我无法重新排序样式表,因为我需要主题样式来覆盖主要样式。我也不能禁用初始样式表(如果我要对它们重新排序),因为它是一个包含所有供应商/站点样式的组合/缩小样式表,我不想在两个样式表中复制它。
-
代码中唯一相关的部分是我如何打开/关闭它们,即:
stylesheet = $('link[title=theme-' + theme + ']')[0]然后根据用户选择设置stylesheet.disabled = true或stylesheet.disabled = false。 Firefox 确实会响应这种禁用状态的手动切换,但在页面最初加载时似乎没有响应。 -
如果你仍然依赖 Javascript,你不能只插入和删除整个链接元素,而不仅仅是属性吗?
标签: html css firefox stylesheet