网站首页  汉语字词  英语词汇  考试资料  写作素材  旧版资料

请输入您要查询的考试资料:

 

标题 使用javascript插入样式
内容
    这篇文章主要介绍了使用javascript插入样式的相关方法,用javascript插入<style>样式以及<link>样式,感兴趣的小伙伴们可以参考一下
    一、用javascript插入<style>样式
    有时候我们需要利用js来动态生成页面上style标签中的css代码,方法很直接,就是直接创建一个style元素,然后设置style元素里面的css代码,最后把它插入到head元素中。
    但有些兼容性问题我们需要解决。首先在符合w3c标准的浏览器中我们只需要把要插入的css代码作为一个文本节点插入到style元素中即可,而在IE中则需要利用style元素的styleSheet.cssText来解决。
    还需要注意的就是在有些版本IE中一个页面上style标签数量是有限制的,如果超过了会报错,需要考虑这点。
    function addCSS(cssText){
     var style = document.createElement('style'), //创建一个style元素
      head = document.head || document.getElementsByTagName('head')[0]; //获取head元素
     style.type = 'text/css'; //这里必须显示设置style元素的type属性为text/css,否则在ie中不起作用
     if(style.styleSheet){ //IE
      var func = function(){
       try{ //防止IE中stylesheet数量超过限制而发生错误
        style.styleSheet.cssText = cssText;
       }catch(e){
       }
      }
      //如果当前styleSheet还不能用,则放到异步中则行
      if(style.styleSheet.disabled){
       setTimeout(func,10);
      }else{
       func();
      }
     }else{ //w3c
      //w3c浏览器中只要创建文本节点插入到style元素中就行了
      var textNode = document.createTextNode(cssText);
      style.appendChild(textNode);
     }
     head.appendChild(style); //把创建的style元素插入到head中 
    }
    //使用
    addCSS('#demo{ height: 30px; background:#f00;}');
    当然这只是一个最基本的演示方法,实际运用中还需进行完善,比如把每次生成的css代码都插入到一个style元素中,这样在IE中就不会发生stylesheet数量超出限制的错误了。
    封装:
    代码如下:
    var importStyle=function importStyle(b){var a=document.createElement("style"),c=document;c.getElementsByTagName("head")[0].appendChild(a);if(a.styleSheet){a.styleSheet.cssText=b}else{a.appendChild(c.createTextNode(b))}};
    importStyle('h1 { background: red; }');//调用
    seajs封装
    代码如下:
    seajs.importStyle=function importStyle(b){var a=document.createElement("style"),c=document;c.getElementsByTagName("head")[0].appendChild(a);if(a.styleSheet){a.styleSheet.cssText=b}else{a.appendChild(c.createTextNode(b))}};
    二、javascript插入<link>样式
    在<head>中使用<link>标签引入一个外部样式文件,这个比较简单,各个主流浏览器也不存在兼容性问题:
    function includeLinkStyle(url) {
    var link = document.createElement(“link”);
    link.rel = “stylesheet”;
    link.type = “text/css”;
    link.href = url;
    document.getElementsByTagName(“head”)[0].appendChild(link);
    }
    includeLinkStyle(“http://css.xxx.com/home/css/reset.css?v=20101227”);
    以上就是本文的全部内容,希望对大家的学习有所帮助。
随便看

 

在线学习网考试资料包含高考、自考、专升本考试、人事考试、公务员考试、大学生村官考试、特岗教师招聘考试、事业单位招聘考试、企业人才招聘、银行招聘、教师招聘、农村信用社招聘、各类资格证书考试等各类考试资料。

 

Copyright © 2002-2024 cuapp.net All Rights Reserved
更新时间:2025/5/17 2:40:49