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 相关文章推荐
JavaScript 实现??打印?理
Apr 28 Javascript
关于onScroll事件在IE6下每次滚动触发三次bug说明
Sep 21 Javascript
js在IE与firefox的差异集锦
Nov 11 Javascript
Javascript数组操作函数总结
Feb 05 Javascript
javascript函数式编程实例分析
Apr 25 Javascript
用Angular实时获取本地Localstorage数据,实现一个模拟后台数据登入的效果
Nov 09 Javascript
无阻塞加载js,防止因js加载不了影响页面显示的问题
Dec 18 Javascript
Angualrjs和bootstrap相结合实现数据表格table
Mar 30 Javascript
VueJs监听window.resize方法示例
Jan 17 Javascript
Vue  webpack 项目自动打包压缩成zip文件的方法
Jul 24 Javascript
js原生map实现的方法总结
Jan 19 Javascript
Js图片点击切换轮播实现代码
Jul 27 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
php跨域cookie共享使用方法
2014/02/20 PHP
php中的四舍五入函数代码(floor函数、ceil函数、round与intval)
2014/07/14 PHP
Codeigniter中mkdir创建目录遇到权限问题和解决方法
2014/07/25 PHP
详解配置 Apache 服务器支持 PHP 文件的解析
2017/02/15 PHP
PHP实现基于栈的后缀表达式求值功能
2017/11/10 PHP
PHP实现基于PDO扩展连接PostgreSQL对象关系数据库示例
2018/03/31 PHP
Extjs优化(二)Form表单提交通用实现
2013/04/15 Javascript
图片翻转效果具体实现代码
2014/01/09 Javascript
js字符串截取函数slice、substring和substr的比较
2016/05/17 Javascript
基于Node的React图片上传组件实现实例代码
2017/05/10 Javascript
基于vue-resource jsonp跨域问题的解决方法
2018/02/03 Javascript
mint-ui 时间插件使用及获取选择值的方法
2018/02/09 Javascript
vue绑定事件后获取绑定事件中的this方法
2018/09/15 Javascript
Vue 框架之动态绑定 css 样式实例分析
2018/11/14 Javascript
JS使用Dijkstra算法求解最短路径
2019/01/17 Javascript
jquery实现聊天机器人
2020/02/08 jQuery
[03:17]DOTA2-DPC中国联赛1月29日Recap集锦
2021/03/11 DOTA
Python的Flask框架中实现登录用户的个人资料和头像的教程
2015/04/20 Python
Python将图片批量从png格式转换至WebP格式
2020/08/22 Python
详解python异步编程之asyncio(百万并发)
2018/07/07 Python
python中ASCII码和字符的转换方法
2018/07/09 Python
python openCV获取人脸部分并存储功能
2019/08/28 Python
django框架auth模块用法实例详解
2019/12/10 Python
pycharm中使用request和Pytest进行接口测试的方法
2020/07/31 Python
基于Python爬取京东双十一商品价格曲线
2020/10/23 Python
HTML5 canvas画图并保存成图片的jcanvas插件
2014/01/17 HTML / CSS
使用phonegap播放音频的实现方法
2017/03/31 HTML / CSS
美国百货齐全的精品网站,提供美式风格的产品:Overstock.com
2016/07/22 全球购物
全球500多个机场的接送服务:Suntransfers
2019/06/03 全球购物
一份全面的PHP面试问题考卷
2012/07/15 面试题
介绍下WebSphere的安全性
2013/01/31 面试题
超市营业员求职简历的自我评价
2013/10/17 职场文书
趣味体育活动方案
2014/02/08 职场文书
宣传部部长竞选演讲稿
2014/04/26 职场文书
5.12护士节活动总结
2015/02/10 职场文书
大学毕业论文致谢词
2015/05/14 职场文书