如何通过javascript插入和拔出css文件?

mzsu5hc0  于 2023-05-02  发布在  Java
关注(0)|答案(2)|浏览(75)

举个例子,我想让JS在一些事件发生后切换附加的CSS文件(这些事件不能通过css @media函数实现)
如何使它最紧凑和简单的方法?

c6ubokkw

c6ubokkw1#

要使用JavaScript动态添加或删除CSS文件,可以使用以下方法:
1.为CSS文件创建一个link元素:

var link = document.createElement("link");
link.rel = "stylesheet";
link.type = "text/css";
link.href = "path/to/your/css/file.css";

1.要将CSS文件添加到文档中,请将link元素附加到head元素:

document.head.appendChild(link);

1.要删除CSS文件,请从head元素中删除link元素:

document.head.removeChild(link);

下面是一个切换CSS文件的示例函数:

function toggleCSS() {
  var link = document.createElement("link");
  link.rel = "stylesheet";
  link.type = "text/css";
  link.href = "path/to/your/css/file.css";

  var head = document.head;
  var existingLink = head.querySelector("link[rel='stylesheet']");

  if (existingLink) {
    head.removeChild(existingLink);
  } else {
    head.appendChild(link);
  }
}

当您调用此函数时,它将在每次调用时打开和关闭CSS文件。

niknxzdl

niknxzdl2#

当你只需要 * 切换 * 一些CSS规则时,你可以加载所有的CSS,并将需要切换/覆盖的CSS放在<style>块的最后一行。
给予<style>一个ID或类名,然后简单地切换样式的disabled * 属性 *。
下面的片段包含一个简单的概念证明。This Codepen展示了一个精心制作的演示,可以切换页面的各种样式。

BTW这也适用于<link rel="stylesheet" id="some-external-style" href="...">。只需在JS中获取引用并切换其disabled属性。

var styleElement = document.getElementById('toggled-style');

function toggleStyle() {
  styleElement.disabled = !styleElement.disabled;
}
<head>
  <style id="always-active">
    /* All your regular CSS */
    
    body {
      background-color: CornSilk;
      color: CornflowerBlue;
    }
  </style>

  <style id="toggled-style">
    /* Style en/disabled by event trigger */

    /*
       These rules override any defined rules in 'always-active'
       when 'toggles-style' is not disabled.
    */
    body {
      background-color: CornflowerBlue;
      color: CornSilk;
    }
  </style>
</head>

<body>
  <p>some content</p>
  <button onclick="toggleStyle()">toggle</button>
</body>

相关问题