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系列(8) S.O.L.I.D五大原则之里氏替换原则LSP
Jan 15 Javascript
关于jQuery $.isNumeric vs. $.isNaN vs. isNaN
Apr 15 Javascript
Jquery动态改变图片IMG的src地址示例
Jun 25 Javascript
javascript确认框的三种使用方法
Dec 17 Javascript
jquery实现简单的自动播放幻灯片效果
Jun 13 Javascript
jQuery实现的简单分页示例
Jun 01 Javascript
Bootstrap中文本框的宽度变窄并且加入一副验证码图片的实现方法
Jun 23 Javascript
分享jQuery封装好的一些常用操作
Jul 28 Javascript
Bootstrap如何创建表单
Oct 21 Javascript
jQuery实现打开网页自动弹出遮罩层或点击弹出遮罩层功能示例
Oct 19 jQuery
BootstrapValidator实现表单验证功能
Nov 08 Javascript
vue-resource 拦截器interceptors使用详解
Jan 18 Vue.js
图片连续滚动代码[兼容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执行速度全攻略(上)
2006/10/09 PHP
PHP利用str_replace防注入的方法
2013/11/10 PHP
php解析xml提示Invalid byte 1 of 1-byte UTF-8 sequence错误的处理方法
2013/11/14 PHP
PHP使用内置函数file_put_contents写入文件及追加内容的方法
2015/12/07 PHP
注意!PHP 7中不要做的10件事
2016/09/18 PHP
php基于闭包实现函数的自调用(递归)实例分析
2016/11/11 PHP
php让json_encode不自动转义斜杠“/”的方法
2020/04/27 PHP
JavaScript 开发中规范性的一点感想
2009/06/23 Javascript
jQuery Animation实现CSS3动画示例介绍
2013/08/14 Javascript
如何解决Jquery库及其他库之间的$命名冲突
2013/09/15 Javascript
javascript监听鼠标滚轮事件浅析
2014/06/05 Javascript
JavaScript代码复用模式详解
2014/11/07 Javascript
JQuery悬停控制图片轮播——代码简单
2015/08/05 Javascript
JavaScript如何实现跨域请求
2016/08/05 Javascript
jQuery将表单序列化成一个Object对象的实例
2016/11/29 Javascript
Angular2.js实现表单验证详解
2017/06/23 Javascript
JS实现马赛克图片效果完整示例
2019/04/13 Javascript
微信小程序环境下将文件上传到OSS的方法步骤
2019/05/31 Javascript
JavaScript使用prototype属性实现继承操作示例
2020/05/22 Javascript
小程序实现上下切换位置
2020/11/16 Javascript
python爬虫入门教程--正则表达式完全指南(五)
2017/05/25 Python
Python爬取当当、京东、亚马逊图书信息代码实例
2017/12/09 Python
Python实现的生成格雷码功能示例
2018/01/24 Python
numpy中的delete删除数组整行和整列的实例
2018/05/09 Python
详谈Pandas中iloc和loc以及ix的区别
2018/06/08 Python
Python unittest 简单实现参数化的方法
2018/11/30 Python
python中使用ctypes调用so传参设置遇到的问题及解决方法
2019/06/19 Python
Python IDE Pycharm中的快捷键列表用法
2019/08/08 Python
基于Python3读写INI配置文件过程解析
2020/07/23 Python
英国在线自行车店:Merlin Cycles
2018/08/20 全球购物
犹他州最古老的体育用品公司:Al’s
2020/12/18 全球购物
财务人员个人自荐信范文
2013/09/26 职场文书
医学检验专业个人求职信范文
2013/12/04 职场文书
导游词之澳门玫瑰圣母堂
2019/12/03 职场文书
Redis可视化客户端小结
2021/06/10 Redis
使用 Apache Dubbo 实现远程通信(微服务架构)
2022/02/12 Servers