动态添加css的三种⽅法(⽰例很清楚)
好久没写⽂章了今天关于动态添加css⽂件写⼀点想法
1. 第⼀种添加⽅式:
这种⽅式采⽤内联是插⼊css.优先级⾼。容易引起页⾯回流性能不好 也不能进⾏多个样式的添加
2. 第⼆种⽅式:
这种⽅式相⽐第⼀种优点是可以⼀次进⾏多个样式的设定,但仍是内联式,引起页⾯回流,多次插⼊引起性能上的消耗。
3. 第三种是:直接在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){
place(t[0],"filter : alpha(opacity="+parseFloat(t[1])*100+")")
}
}
cssCode=cssCode+"\n";//增加末尾的换⾏符,⽅便在firebug下的查看。
ElementsByTagName("head")[0];
ElementsByTagName("style");
if(styleElements.length==0) { //如果不存在style元素则创建
ateStyleSheet){//ie
} else {
ateElement('style');//w3c
tempStyleElement.setAttribute("type","text/css");
headElement.appendChild(tempStyleElement);
css怎么创建}
}
varstyleElement=styleElements[0];
Attribute("media");
if(media!=null&&!/screen/.LowerCase())) {
styleElement.setAttribute("media","screen");
}
if(styleElement.styleSheet) { //ie
styleElement.styleSheet.cssText+=cssCode;
} BoxObjectFor) {
styleElement.innerHTML+=cssCode;//⽕狐⽀持直接innerHTML添加样式表字串
} else {
styleElement.ateTextNode(cssCode))
}
}
4.动态加载css⽂件,这个就简单了
functionaddStyle(stylePath){
ElementsByTagName("head")[0]; ateElement("link"); l="stylesheet";
addStyle.href=stylePath;
container.appendChild(addStyle);
}
addStyle('css/add.css');
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论