javascript 操作 css Rule
1 //add addCssRule(‘.bcd‘,{‘color‘:‘red‘,‘font-weight‘:‘bold‘,‘font-size‘:‘12px‘},document.styleSheets[1]); 2 function addCssRule(selector,styles,styleSheet,index){ 3 var sheets = styleSheet instanceof Array ? styleSheet : [styleSheet], 4 style = ‘‘, 5 declaration = ‘‘; 6 for(var pro in styles){ 7 if(styles.hasOwnProperty(pro)){ 8 declaration += (pro + ‘:‘ + styles[pro] + ‘;‘); 9 } 10 } 11 style = selector + ‘{‘ + declaration + ‘}‘; 12 for(var i = 0,j = sheets.length; i < j;i++){ 13 if(sheets[i].insertRule){ 14 index = index >= 0 ? index : sheets[i][‘cssRules‘].length; 15 sheets[i].insertRule(style,index); 16 }else if(sheets[i].addRule){ //IE 17 index = index >= 0 ? index : -1; //-1为末尾 18 sheets[i].addRule(selector,declaration,index); 19 } 20 } 21 } 22 23 //modify editCssRule(‘.abc‘,{‘font-weight‘:‘bold‘,‘font-size‘:‘14px‘},document.styleSheets[1]); 24 function editCssRule(selector,styles,styleSheet){ 25 var sheets = styleSheet instanceof Array ? styleSheet : [styleSheet]; 26 selector = selector.toUpperCase(); // ie9以下标签选择器默认是大写 这里统一下 27 //对大小写敏感的selector 会有问题 28 for(var i = 0,j = sheets.length; i < j;i++){ 29 var rules = sheets[i][‘cssRules‘] || sheets[i][‘rules‘]; //ie为 rules 30 if(!rules){ continue;} 31 for(var m = 0,n = rules.length;m < n;m++){ 32 if(rules[m][‘selectorText‘].toUpperCase() == selector){ 33 for(var pro in styles){ 34 if(styles.hasOwnProperty(pro)){ 35 rules[m].style[cssCamilize(pro)] = styles[pro]; 36 } 37 } 38 } 39 } 40 } 41 } 42 43 //del delCssRule(‘.bcd‘,document.styleSheets[1]); 44 function delCssRule(selector,styleSheet,index){ 45 var sheets = styleSheet instanceof Array ? styleSheet : [styleSheet]; 46 selector = selector.toUpperCase(); 47 for(var i = 0,j = sheets.length; i < j;i++){ 48 var rules = sheets[i][‘cssRules‘] || sheets[i][‘rules‘]; //ie为 rules 49 if(index >=0 && index < rules.length){ 50 sheets[i].deleteRule ? sheets[i].deleteRule(index) : sheets[i].removeRule(index); 51 }else if(selector){ 52 for(var m = 0,n = rules.length;m < n;m++){ 53 if(rules[m][‘selectorText‘].toUpperCase() == selector){ 54 sheets[i].deleteRule ? sheets[i].deleteRule(m) : sheets[i].removeRule(m);; //可能存在多个一样的selector 全部删除 55 } 56 } 57 }else{ 58 return false; 59 } 60 } 61 }; 62 63 function cssCamilize(str){ 64 return str.replace(/-(\w)/g,function($1,$2){ 65 return $2.toUpperCase(); 66 }); 67 };
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。