添加CSS的方式有行内式、嵌入式、外链式、导入式 a)动态引入样式表文件: 复制代码 代码如下: function loadLink(url){ var link = document.createElement("link"); link.type = "text/css"; link.rel = "stylesheet"; link.href = url; var head = document.getElmentsByTagName("head")[0]; head.appendChild(link); }
b)嵌入式: 复制代码 代码如下: function insertStyles(){ var doc,cssCode=[],cssText; var len = arguments.length; var head,style,firstStyle; if(len == 1){ doc = document; cssCode.push(arguments[0]) }else if(len == 2){ doc = arguments[0]; cssCode.push(arguments[1]); }else{ alert("函数最多接收两个参数!"); } head = doc.getElementsByTagName("head")[0]; styles= head.getElementsByTagName("style"); if(styles.length == 0){ if(doc.createStyleSheet){//ie doc.createStyleSheet(); }else{//FF var tempStyle = doc.createElement("style"); tempStyle.setAttibute("type","text/css"); head.appendChild(tempStyle); } } firstStyle = styles[0]; cssText=cssCode.join("
"); if(!+"v1"){//opacity兼容 var str = cssText.match(/opacity:(d?.d+);/); if(str!=null){ cssText = cssText.replace(str[0],"filter:alpha(opacity="+pareFloat(str[1])*100+")"); } } if(firstStyle.styleSheet){ firstStyle.styleSheee.cssText += cssText; }else if(doc.getBoxObjectFor){ firstStyle.innerHTML += cssText; }else{ firstStyle.appendChild(doc.createTextNode(cssText)); } }
c)行内式: 复制代码 代码如下: var addStyle=function (ele,str){ var s = ele.getAttribute("style"),styles; if(str && typeof str === "string"){ if(!s){ ele.style.cssText = str; }else{ if(s == "[object]"){//IE6/7 e.getAttribute("style")返回[object] s=ele.style.cssText; } styles= trim(s).split(";"); for (var i=0,len=styles.length; i<len; i++){ var style_i=trim(styles[i]); var attr=style_i.split(":")[0]; if(str.indexOf(attr)>-1){ styles[i]=""; }else{ styles[i]=style_i; } } ele.style.cssText= styles.join("")+";"+str; } } }