加入收藏 | 设为首页 | 会员中心 | 我要投稿 辽源站长网 (https://www.0437zz.com/)- 云专线、云连接、智能数据、边缘计算、数据安全!
当前位置: 首页 > 创业 > 经验 > 正文

网页中动态加载 CSS 的四种不同方法

发布时间:2018-09-26 09:40:28 所属栏目:经验 来源:站长网
导读:第一种添加方式: document.getElementById(elementId).style.background=#ff0000; 这种方式采用内联是插入css.优先级高。容易引起页面回流性能不好 也不能进行多个样式的添加 第二种方式: document.getElementsByTagName(a)[0].style.cssText=background

第一种添加方式:

document.getElementById("elementId").style.background="#ff0000";

这种方式采用内联是插入css.优先级高。容易引起页面回流性能不好 也不能进行多个样式的添加

第二种方式:

document.getElementsByTagName("a")[0].style.cssText="background:#ff0000;border:1px#dfdfdfsolid;";

这种方式相比第一种优点是可以一次进行多个样式的设定,但仍是内联式,引起页面回流,多次插入引起性能上的消耗。

第三种是:直接在style标签中写,这种方法要考虑不同浏览器的兼容性问题。(声明:下面代码引用”司徒正美“的一段代码)

varaddSheet=function(){
vardoc,cssCode;
if(arguments.length==1){
doc=document;
cssCode=arguments[0]
}elseif(arguments.length==2){
doc=arguments[0];
cssCode=arguments[1];
}else{
alert("addSheet函数最多接受两个参数!");
}
if(!+"v1"){//增加自动转换透明度功能,用户只需输入W3C的透明样式,它会自动转换成IE的透明滤镜
vart=cssCode.match(/opacity:(d?.d+);/);
if(t!=null){
cssCode=cssCode.replace(t[0],"filter:alpha(opacity="+parseFloat(t[1])*100+")")
}
}
cssCode=cssCode+"n";//增加末尾的换行符,方便在firebug下的查看。
varheadElement=doc.getElementsByTagName("head")[0];
varstyleElements=headElement.getElementsByTagName("style");
if(styleElements.length==0){//如果不存在style元素则创建
if(doc.createStyleSheet){//ie
doc.createStyleSheet();
}else{
vartempStyleElement=doc.createElement('style');//w3c
tempStyleElement.setAttribute("type","text/css");
headElement.appendChild(tempStyleElement);
}
}
varstyleElement=styleElements[0];
varmedia=styleElement.getAttribute("media");
if(media!=null&&!/screen/.test(media.toLowerCase())){
styleElement.setAttribute("media","screen");
}
if(styleElement.styleSheet){//ie
styleElement.styleSheet.cssText+=cssCode;
}elseif(doc.getBoxObjectFor){
styleElement.innerHTML+=cssCode;//火狐支持直接innerHTML添加样式表字串
}else{
styleElement.appendChild(doc.createTextNode(cssCode))
}
}

4.动态加载css文件,这个就简单了

functionaddStyle(stylePath){
varcontainer=document.getElementsByTagName("head")[0];
varaddStyle=document.createElement("link");
addStyle.rel="stylesheet";
addStyle.type="text/css";
addStyle.media="screen";
addStyle.href=stylePath;
container.appendChild(addStyle);
}
addStyle('css/add.css');

(编辑:辽源站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读