zoukankan      html  css  js  c++  java
  • 用javascript插入<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");
        var 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");
        var 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”);
    

      

  • 相关阅读:
    [转]laravel 4之视图及Responses
    Laravel 安装指南
    [转]CodeIgniter与Zend Acl结合实现轻量级权限控制
    OSCHina技术导向:Java电子商务平台OFBiz
    OSCHina技术导向:Java开源QQ工具iQQ
    OSCHina技术导向:web内容管理系统Magnolia
    OSCHina技术导向:Java轻量web开发框架——JFinal
    OSCHina技术导向:Java模板引擎velocity
    OSCHina技术导向:Java全文搜索框架Lucene
    OSChina技术导向:Java图表框架JFreeChart
  • 原文地址:https://www.cnblogs.com/jkr666666/p/11285793.html
Copyright © 2011-2022 走看看