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 相关文章推荐
复选框全选与全不选操作实现思路
Aug 18 Javascript
在JavaScript中判断整型的N种方法示例介绍
Jun 18 Javascript
ajaxFileUpload.js插件支持多文件上传的方法
Sep 02 Javascript
盘点javascript 正则表达式中 中括号的【坑】
Mar 16 Javascript
jQuery实现二维码扫描功能
Jan 09 Javascript
React创建组件的三种方式及其区别
Jan 12 Javascript
原生javascript移动端滑动banner效果
Mar 10 Javascript
解决Vue2.0自带浏览器里无法打开的原因(兼容处理)
Jul 28 Javascript
Node使用Sequlize连接Mysql报错:Access denied for user ‘xxx’@‘localhost’
Jan 03 Javascript
elementUI Vue 单个按钮显示和隐藏的变换功能(两种方法)
Sep 04 Javascript
IDEA配置jQuery, $符号不再显示黄色波浪线的问题
Oct 09 jQuery
图片连续滚动代码[兼容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
国产动画《伍六七》原声大碟大卖,啊哈娱乐引领音乐赋能IP的新尝试
2020/03/08 国漫
PHP+AJAX实现无刷新注册(带用户名实时检测)
2006/12/02 PHP
PHP使用ODBC连接数据库的方法
2015/07/18 PHP
CI框架中$this-&gt;load-&gt;library()用法分析
2016/05/18 PHP
PHP十六进制颜色随机生成器功能示例
2017/07/24 PHP
PHP使用SOAP调用API操作示例
2018/12/25 PHP
PHP常见加密函数用法示例【crypt与md5】
2019/01/27 PHP
windows系统php环境安装swoole具体步骤
2021/03/04 PHP
javascript让setInteval里的函数参数中的this指向特定的对象
2010/01/31 Javascript
JQuery自适应IFrame高度(支持嵌套 兼容IE,ff,safafi,chrome)
2011/03/28 Javascript
浅析showModalDialog数据缓存问题(用禁止浏览器缓存解决)
2013/07/09 Javascript
高效率JavaScript编写技巧整理
2013/08/23 Javascript
jQuery通过控制节点实现仅在前台通过get方法完成参数传递
2015/02/02 Javascript
js实现漂浮回顶部按钮实例
2015/05/06 Javascript
解决jquery无法找到其他父级子集问题的方法
2016/05/10 Javascript
jQuery判断是否存在滚动条的简单方法
2016/09/17 Javascript
jquery radio的取值_radio的选中_radio的重置方法
2016/09/20 Javascript
JS对象的深度克隆方法示例
2017/03/16 Javascript
微信小程序 生命周期函数详解
2017/05/24 Javascript
详谈js模块化规范
2017/07/07 Javascript
JS 中使用Promise 实现红绿灯实例代码(demo)
2017/10/20 Javascript
vscode调试node.js的实现方法
2020/03/22 Javascript
python版简单工厂模式
2017/10/16 Python
python+django加载静态网页模板解析
2017/12/12 Python
Python给定一个句子倒序输出单词以及字母的方法
2018/12/20 Python
Python 解决OPEN读文件报错 ,路径以及r的问题
2019/12/19 Python
详细分析Python collections工具库
2020/07/16 Python
Html5移动端适配IphoneX等机型的方法
2019/06/25 HTML / CSS
医学实习生自我鉴定
2013/12/12 职场文书
中国好声音华少广告词
2014/03/17 职场文书
班主任评语大全
2014/04/26 职场文书
欢度春节标语
2014/07/01 职场文书
2015中秋节慰问信范文
2015/03/23 职场文书
2015年校本培训工作总结
2015/07/24 职场文书
恶魔之树最顶端的三颗果实 震震果实上榜,第一可以制造岩浆
2022/03/18 日漫
vue el-table实现递归嵌套的示例代码
2022/08/14 Vue.js