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 性能优化指南(3)
May 21 Javascript
jquery BS,dialog控件自适应大小
Jul 06 Javascript
高性能web开发 如何加载JS,JS应该放在什么位置?
May 14 Javascript
JS的事件绑定深入认识
Jun 26 Javascript
jQuery实现鼠标滑过Div层背景变颜色的方法
Feb 17 Javascript
基于jQuery实现文本框只能输入数字(小数、整数)
Jan 14 Javascript
有关jquery与DOM节点操作方法和属性记录
Apr 15 Javascript
angularjs使用directive实现分页组件的示例
Feb 07 Javascript
javascript原生封装一个淡入淡出效果的函数测试实例代码
Mar 19 Javascript
JS实现的DOM插入节点操作示例
Apr 04 Javascript
js判断复选框是否选中的方法示例【基于jQuery】
Oct 10 jQuery
Nest.js参数校验和自定义返回数据格式详解
Mar 29 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
QQ登录 PHP OAuth示例代码
2011/07/20 PHP
Thinkphp框架使用list_to_tree 实现无限级分类列出所有节点示例
2020/04/04 PHP
一些Javascript的IE和Firefox(火狐)兼容性的问题总结及常用例子
2009/05/21 Javascript
jQuery EasyUI API 中文文档 - ComboTree组合树
2011/10/11 Javascript
js实现九宫格图片半透明渐显特效的方法
2015/02/16 Javascript
JavaScript实现Flash炫光波动特效
2015/05/14 Javascript
JS实现自动变化的导航菜单效果代码
2015/09/09 Javascript
JQuery实现简单的图片滑动切换特效
2015/11/22 Javascript
jquery 一键复制到剪切板的实例
2017/09/20 jQuery
jQuery实现的记住帐号密码功能完整示例
2019/08/03 jQuery
js中Function引用类型常见有用的方法和属性详解
2019/12/11 Javascript
JS面向对象编程——ES6 中class的继承用法详解
2020/03/03 Javascript
VUE异步更新DOM - 用$nextTick解决DOM视图的问题
2020/11/06 Javascript
vue动态合并单元格并添加小计合计功能示例
2020/11/26 Vue.js
python使用7z解压软件备份文件脚本分享
2014/02/21 Python
Python md5与sha1加密算法用法分析
2017/07/14 Python
Python决策树分类算法学习
2017/12/22 Python
python基于twisted框架编写简单聊天室
2018/01/02 Python
python中matplotlib的颜色及线条控制的示例
2018/03/16 Python
Python中*args和**kwargs的区别详解
2019/09/17 Python
wxpython自定义下拉列表框过程图解
2020/02/14 Python
浅谈selenium如何应对网页内容需要鼠标滚动加载的问题
2020/03/14 Python
python实现逢七拍腿小游戏的思路详解
2020/05/26 Python
python根据用户需求输入想爬取的内容及页数爬取图片方法详解
2020/08/03 Python
超级实用的8个Python列表技巧
2020/08/24 Python
Python使用pickle进行序列化和反序列化的示例代码
2020/09/22 Python
如何在python中处理配置文件代码实例
2020/09/27 Python
PyCharm2019.3永久激活破解详细图文教程,亲测可用(不定期更新)
2020/10/29 Python
澳大利亚玩具剧场:Toy Playhouse
2019/03/03 全球购物
西安众合通用.net笔试题
2013/03/18 面试题
毕业生物理教师求职信
2013/10/17 职场文书
幼儿园开学寄语
2014/04/03 职场文书
一年级评语大全
2014/04/23 职场文书
喝酒驾驶检讨书
2014/10/01 职场文书
合作意向书范本
2019/04/17 职场文书
Java数据结构之堆(优先队列)
2022/05/20 Java/Android