当前位置:  开发笔记 > 编程语言 > 正文

如何用Javascript创建<style>标签?

如何解决《如何用Javascript创建<style>标签?》经验,为你挑选了8个好方法。

我正在寻找一种"; document.body.appendChild(divNode);

这适用于Firefox,Opera和Internet Explorer,但不适用于Google Chrome.
IE的前端也有点难看.

有谁知道创建`)


这是最好,最简单的解决方案,谢谢!

6> Garlaro..:

通常需要覆盖现有规则,因此在HEAD中添加新样式并不适用于所有情况.

我想出了这个简单的函数,它总结了所有无效的 "附加到BODY"的方法,并且使用和调试(IE8 +)更方便.

window.injectCSS = (function(doc){
    // wrapper for all injected styles and temp el to create them
    var wrap = doc.createElement('div');
    var temp = doc.createElement('div');
    // rules like "a {color: red}" etc.
    return function (cssRules) {
        // append wrapper to the body on the first call
        if (!wrap.id) {
            wrap.id = 'injected-css';
            wrap.style.display = 'none';
            doc.body.appendChild(wrap);
        }
        // 
for IE: http://goo.gl/vLY4x7 temp.innerHTML = '
'; wrap.appendChild( temp.children[1] ); }; })(document);

演示:codepen,jsfiddle



7> 小智..:

以下是动态添加类的变体

function setClassStyle(class_name, css) {
  var style_sheet = document.createElement('style');
  if (style_sheet) {
    style_sheet.setAttribute('type', 'text/css');
    var cstr = '.' + class_name + ' {' + css + '}';
    var rules = document.createTextNode(cstr);
    if(style_sheet.styleSheet){// IE
      style_sheet.styleSheet.cssText = rules.nodeValue;
    } else {
      style_sheet.appendChild(rules);
    }
    var head = document.getElementsByTagName('head')[0];
    if (head) {
      head.appendChild(style_sheet);
    }
  }
}



8> Spooky..:

该对象变量会将style标签附加到具有type属性和一个简单转换规则的head标签上,该规则与每个id / class / element匹配。可以随意修改content属性并根据需要注入任意数量的规则。只要确保内容中的CSS规则保持一行即可(或者,如果愿意,可以“转义”每一行)。

var script = {

  type: 'text/css', style: document.createElement('style'), 
  content: "* { transition: all 220ms cubic-bezier(0.390, 0.575, 0.565, 1.000); }",
  append: function() {

    this.style.type = this.type;
    this.style.appendChild(document.createTextNode(this.content));
    document.head.appendChild(this.style);

}}; script.append();

推荐阅读
李桂平2402851397
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有