代码改变世界

javascript动态加载css

2009-06-23 23:06  飞逝心情  阅读(960)  评论(0编辑  收藏  举报

JS动态加载CSS在可换主题的界面中具有很重要的意义,用户可以根据自己的浏览习惯选择自己喜欢的页面显示方式,动态加载CSS的方法主要有三种,下面详细说明

如果你有很多关联的CSS文件要一起加载,或者想动态的加载不同的CSS文件,那么下面的方法你一定对你有帮助。
第一种:一般用在外部CSS文件中加载必须的文件
@import url(style.css);

/*只能用在CSS文件中或者style标签中*/


第二种:简单的在页面中加载一个外部CSS文件
document.createStyleSheet(cssFile);  


第三种:用createElement方法创建CSS的Link标签
var head = document.getElementsByTagName('HEAD').item(0);

var style = document.createElement('link');

style.href = 'style.css';

style.rel = 'stylesheet'

style.type = 'text/css';

head.appendChild(style);

第三种方法又可以转化为由用户自己控制的CSS加载的类型,用户可以选择自己喜欢的颜色,布局等,下面是动态加载替换CSS的实现

  1. <script type="text/javascript"> 
  2.       function changeCss(cssName) {  
  3.         /*对于已经存在CSS节点的情况下,不重新加载新的节点了,否则要新建节点呵*/  
  4.             if (document.getElementsByTagName("link").length > 0) {  
  5.                 var ctrlLink = document.getElementsByTagName("link")[0];  
  6.                 ctrlLink.setAttribute("href", cssName + ".css");  
  7.             } else {  
  8.                 var head = document.getElementsByTagName('HEAD').item(0);  
  9.                 var style = document.createElement('link');  
  10.                 style.href = cssName + '.css';  
  11.                 style.rel = 'stylesheet' 
  12.                 style.type = 'text/css';  
  13.                 head.appendChild(style);  
  14.             }  
  15.         }  
  16.     </script> 
  17.     <a href="#" onclick="changeBg('green')">绿色</a> 
  18.     <a href="#" onclick="changeBg('red')"> 红色</a>