js 操作css实现代码


Posted in Javascript onJune 11, 2009

当我们需要的是一条规则的时候,总不能在每次dom发生变化的时候去执行这个操作,否则也太效率低下了。
好在dom中css rules也是可以修改的。不过不同浏览器的对于css rules的接口描述也不同,其中ie中以类似hash table的方式,而ff以数组方式。
从可编程性上说,ie的接口描述更讨程序员喜欢,不过从逻辑上说,ff显然更为合理。
我提供了类似于ie的方式对两套代码进行简单包装,不过ie在dom的css removeRule之后并不能确定同步的把规则兑现。所以最好用规则覆盖的方式而非remove。
需要注意的是,在使用改js函数的时候,页面上至少要有一个style标签。下面是代码及示例。

<style> 
#a: 
{ 
color: blue; 
} 
</style> 
<style> 
#a: 
{ 
background: gray; 
} 
</style> 
<script> 
function addCSSRule(key,value){ 
var css = document.styleSheets[document.styleSheets.length-1]; 
css.cssRules ? 
(css.insertRule(key+"{"+value+"}", css.cssRules.length)) : 
(css.addRule(key,value)) ; 
} 
function removeCSSRule(key){ 
for(var i = 0; i < document.styleSheets.length; i++){ 
var css = document.styleSheets[i]; 
css.cssRules ? 
(function(){ 
for(var j = 0; j < css.cssRules.length; j++){ 
if(css.cssRules[j].selectorText==key){ 
css.deleteRule(j); 
} 
} 
})() : 
(css.removeRule(key)) ; 
} 
} 
</script> 
<div id="a"> 
abc 
</div> 
<button onclick='addCSSRule("#a","color:red;background:yellow;")'> 
add</button> 
<button onclick='removeCSSRule("#a")'> 
remove</button>
Javascript 相关文章推荐
JQuery 无废话系列教程(一) jquery入门 [推荐]
Jun 23 Javascript
JavaScript 注册事件代码
Jan 27 Javascript
js substr、substring和slice使用说明小记
Sep 15 Javascript
JS实现点击文字对应DIV层不停闪动效果的方法
Mar 02 Javascript
谈谈我对JavaScript原型和闭包系列理解(随手笔记9)
Dec 24 Javascript
详解webpack+gulp实现自动构建部署
Jun 29 Javascript
vue 简单自动补全的输入框的示例
Mar 12 Javascript
ES6与CommonJS中的模块处理的区别
Jun 13 Javascript
vue实现行列转换的一种方法
Aug 06 Javascript
js之切换全屏和退出全屏实现代码实例
Sep 09 Javascript
vue多个元素的样式选择器问题
Nov 29 Javascript
ReactRouter的实现方法
Jan 25 Javascript
图片连续滚动代码[兼容IE/firefox]
Jun 11 #Javascript
Javascript Tab 导航插件 (23个)
Jun 11 #Javascript
javascript 树控件 比较好用
Jun 11 #Javascript
javascript 禁止复制网页
Jun 11 #Javascript
JavaScript 动态改变图片大小
Jun 11 #Javascript
jQuery 学习 几种常用方法
Jun 11 #Javascript
javascript 冒号 使用说明
Jun 06 #Javascript
You might like
Access数据库导入Mysql的方法之一
2006/10/09 PHP
使用php来实现网络服务
2009/09/15 PHP
php中检查文件或目录是否存在的代码小结
2012/10/22 PHP
PHP计算一年多少个星期和每周的开始和结束日期
2014/07/01 PHP
PHP中单例模式的使用场景与使用方法讲解
2019/03/18 PHP
PHP 对象接口简单实现方法示例
2020/04/13 PHP
JavaScript入门教程(1) 什么是JS
2009/01/31 Javascript
JavaScript 组件之旅(三):用 Ant 构建组件
2009/10/28 Javascript
event.currentTarget与event.target的区别介绍
2012/12/31 Javascript
form表单只提交数据而不进行页面跳转的解决方案
2013/09/18 Javascript
jquery事件重复绑定的快速解决方法
2014/01/03 Javascript
jQuery实现复选框成对选择及对应取消的方法
2015/03/03 Javascript
详解javascript遍历方式
2015/11/11 Javascript
javascript-解决mongoose数据查询的异步操作
2016/12/22 Javascript
vue组件中点击按钮后修改输入框的状态实例代码
2017/04/14 Javascript
jQuery+pjax简单示例汇总
2017/04/21 jQuery
js移动端事件基础及常用事件库详解
2017/08/15 Javascript
bootstrap table支持高度百分比的实例代码
2018/02/28 Javascript
JS实现select选中option触发事件操作示例
2018/07/13 Javascript
[02:11]DOTA2上海特级锦标赛主赛事第二日RECAP
2016/03/04 DOTA
Python利用正则表达式匹配并截取指定子串及去重的方法
2015/07/30 Python
动感网页相册 python编写简单文件夹内图片浏览工具
2016/08/17 Python
Python参数类型以及常见的坑详解
2019/07/08 Python
浅谈keras使用中val_acc和acc值不同步的思考
2020/06/18 Python
详解Scrapy Redis入门实战
2020/11/18 Python
Selenium+BeautifulSoup+json获取Script标签内的json数据
2020/12/07 Python
python的scipy.stats模块中正态分布常用函数总结
2021/02/19 Python
使用css3实现的tab选项卡代码分享
2014/12/09 HTML / CSS
利用CSS3的3D效果制作正方体
2020/03/10 HTML / CSS
下述程序的作用是计算机数组中的最大元素值及其下标
2012/11/26 面试题
2014党员自我评议表范文
2014/09/20 职场文书
用电申请报告范文
2015/05/18 职场文书
oracle表分区的概念及操作
2021/04/24 Oracle
Spring中的使用@Async异步调用方法
2021/11/01 Java/Android
WebRTC记录音视频流(web技术分享)
2022/02/24 Javascript
Nginx工作模式及代理配置的使用细节
2022/03/21 Servers