手机
当前位置:查字典教程网 >编程开发 >Javascript教程 >javascript动态添加样式(行内式/嵌入式/外链式等规则)
javascript动态添加样式(行内式/嵌入式/外链式等规则)
摘要:添加CSS的方式有行内式、嵌入式、外链式、导入式a)动态引入样式表文件:复制代码代码如下:functionloadLink(url){var...

添加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("n");

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;

}

}

}

d)导入式:

import "index.css";

操作CSS 类相关的方法:

复制代码 代码如下:

var hasClass=function(ele,value){

var rclass = /[ntr]/g,

value=" "+value+" ";

return (ele.nodeType==1)&&(" "+ele.className+" ").replace(rclass," ").indexOf(value)>-1;

}

var trim=function (val){

return val.replace(/(^s+)|(s+$)/g,"");

}

var addClass=function(ele,value){

var rspace = /s+/,classNames,getClass;

if(value&&typeof value === "string"){

classNames = value.split(rspace);

if(ele.nodeType === 1){

if(!ele.className && classNames.length == 1){

ele.className = value;

}else{

getClass = " "+ele.className+" ";

for(var i=0,len=classNames.length; i<len ;i++){

var cname=classNames[i];

if(!hasClass(ele,cname)){

getClass += cname+" ";

}

}

ele.className = trim(getClass);

}

}

}

}

var removeClass=function(ele,value){

var rclass = /[ntr]/g,classNames,getClass;

if((value&&typeof value === "string")||value === undefined){

classNames = (value||"").split(rspace);

if(ele.nodeType === 1 && ele.className){

if(value){//存在查找要移除的类

getClass = " "+ele.className+" ".replace(rclass," ");//左右空格,为了使类中各类间均等,方便后面替换

for(var i=0,len=classNames.length; i<len; i++){

getClass = getClass.replace(" "+classNames[i]+" "," ")

}

ele.className=trim(getClass);

}else{//不存在移除所有类

ele.className = "";

}

}

}

}

var toggleClass=function(ele,value){

if(typeof value === "string"){

if(hasClass(ele,value)){

removeClass(ele,value);

}else{

addClass(ele,value);

}

}

}

【javascript动态添加样式(行内式/嵌入式/外链式等规则)】相关文章:

javascript动态创建链接的方法

javascript正则表达式总结

Jquery动态添加输入框的方法

javascript操作表格

javascript动态创建表格及添加数据实例详解

JavaScript静态的动态

JavaScript对W3C DOM模版的支持情况详解

JavaScript实现添加、查找、删除元素

理解javascript封装

基于JavaScript实现动态添加删除表格的行

精品推荐
分类导航