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选择器全集详解
Nov 24 Javascript
ANGULARJS中用NG-BIND指令实现单向绑定的例子
Dec 08 Javascript
javascript的tab切换原理与效果实现方法
Jan 10 Javascript
javascript动态设置样式style实例分析
May 13 Javascript
JS实现的N多简单无缝滚动代码(包含图文效果)
Nov 06 Javascript
老生常谈JavaScript 正则表达式语法
Aug 20 Javascript
Centos7 中安装 Node.js v4.4.4
Nov 03 Javascript
使用vue.js实现联动效果的示例代码
Jan 10 Javascript
基于vue实现分页/翻页组件paginator示例
Mar 09 Javascript
详解react如何在组件中获取路由参数
Jun 15 Javascript
webpack 4.0.0-beta.0版本新特性介绍
Feb 10 Javascript
详解Vue前端对axios的封装和使用
Apr 01 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
SONY ICF-SW55的电路分析
2021/03/02 无线电
Windows下IIS6/Apache2.2.4+MySQL5.2+PHP5.2.1安装配置方法
2007/05/03 PHP
用PHP ob_start()控制浏览器cache、生成html实现代码
2010/02/16 PHP
PHP开启opcache提升代码性能
2015/04/26 PHP
静态页面下用javascript操作ACCESS数据库(读增改删)的代码
2007/05/14 Javascript
jQuery插件开发基础简单介绍
2013/01/07 Javascript
JavaScript截断字符串的方法
2015/07/15 Javascript
Angular页面间切换及传值的4种方法
2016/11/04 Javascript
Angular将填入表单的数据渲染到表格的方法
2017/09/22 Javascript
详解vue.js数据传递以及数据分发slot
2018/01/20 Javascript
Vue.js中对css的操作(修改)具体方式详解
2018/10/30 Javascript
微信小程序实现下拉刷新动画
2019/06/21 Javascript
Preload基础使用方法详解
2020/02/03 Javascript
Python访问纯真IP数据库脚本分享
2015/06/29 Python
解决Python出现_warn_unsafe_extraction问题的方法
2016/03/24 Python
Python 爬虫学习笔记之单线程爬虫
2016/09/21 Python
Python编程实现两个文件夹里文件的对比功能示例【包含内容的对比】
2017/06/20 Python
python实现决策树分类算法
2017/12/21 Python
python实现Adapter模式实例代码
2018/02/09 Python
python验证码识别教程之滑动验证码
2018/06/04 Python
浅析python的Lambda表达式
2019/02/27 Python
PyQt5基本控件使用详解:单选按钮、复选框、下拉框
2019/08/05 Python
深度学习入门之Pytorch 数据增强的实现
2020/02/26 Python
C/C++有关内存的思考题
2015/12/04 面试题
美术专业学生个人自我评价
2013/09/19 职场文书
会计学自我鉴定
2014/02/06 职场文书
法律专业求职信
2014/05/24 职场文书
幼儿园安全责任书范本
2014/07/24 职场文书
群众路线教育实践活动整改方案(个人版)
2014/10/25 职场文书
六一文艺汇演主持词
2015/06/30 职场文书
2015大一新生军训感言
2015/08/01 职场文书
掌握这项技巧,一年阅读300本书不是梦
2019/09/12 职场文书
Python基础学习之奇异的GUI对话框
2021/05/27 Python
Java 多态分析
2022/04/26 Java/Android
springboot为异步任务规划自定义线程池的实现
2022/06/14 Java/Android
MySQL transaction事务安全示例讲解
2022/06/21 MySQL