我有一个页面 <link>
在加载名为 light.css
的 CSS 的标题中。我还有一个名为 dark.css
的文件。我想要一个按钮来一起交换页面的样式(css文件中使用了40个选择器,有些在两个文件中不匹配)。
如何使用 JS 删除对 light.css
的引用并删除所有已应用的样式,然后加载 dark.css
并从中应用所有样式?我不能简单地重置所有元素,因为有些样式是通过不同的 css 文件应用的,有些是由 JS 动态生成的。有没有一种简单而有效的方法可以在不重新加载页面的情况下做到这一点? Vanilla JS 更可取,但是无论如何我都会使用 jQuery 进行后续处理,所以 jQ 也可以。
原文由 Xeos 发布,翻译遵循 CC BY-SA 4.0 许可协议
您可以创建一个新链接,并将旧链接替换为新链接。如果你把它放在一个函数中,你可以在任何需要的地方重用它。
Javascript:
的HTML:
为简单起见,我使用了内联 javascript。在生产中,您可能希望使用不显眼的事件侦听器。