问题:
您有一个包含静态 CSS 文件的网页(light.css) 链接在标题中。您需要一个无缝机制来将页面的样式切换到另一个 CSS 文件(dark.css),替换现有样式。
解决方案:
动态交换 CSS 文件并应用新样式而不重新加载页面,您可以使用以下方法之一:
1.切换“rel=alternate”属性:
<code class="html"><link rel="stylesheet" href="main.css"> <link rel="stylesheet alternate" href="light.css" id="light" title="Light"> <link rel="stylesheet alternate" href="dark.css" id="dark" title="Dark"></code>
<code class="javascript">function enableStylesheet(node) { node.rel = 'stylesheet'; } function disableStylesheet(node) { node.rel = 'alternate stylesheet'; }</code>
2.设置和切换“禁用”属性:
<code class="html"><link rel="stylesheet" href="main.css"> <link rel="stylesheet" href="light.css" id="light" class="alternate"> <link rel="stylesheet" href="dark.css" id="dark" class="alternate"></code>
<code class="javascript">function enableStylesheet(node) { node.disabled = false; } function disableStylesheet(node) { node.disabled = true; } document .querySelectorAll('link[rel=stylesheet].alternate') .forEach(disableStylesheet);</code>
3.切换“media=none”属性:
<code class="html"><link rel="stylesheet" href="main.css"> <link rel="stylesheet" href="light.css" media="none" id="light"> <link rel="stylesheet" href="dark.css" media="none" id="dark"></code>
<code class="javascript">function enableStylesheet(node) { node.media = ''; } function disableStylesheet(node) { node.media = 'none'; }</code>
注意:
以上是如何在不重新加载页面的情况下动态交换 CSS 文件?的详细内容。更多信息请关注PHP中文网其他相关文章!