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 Math和Number对象
Jan 26 Javascript
js显示文本框提示文字的方法
May 07 Javascript
JavaScript实现点击自动选择TextArea文本的方法
Jul 02 Javascript
尝试动手制作javascript放大镜效果
Dec 25 Javascript
Bootstrap实现登录校验表单(带验证码)
Jun 23 Javascript
Vue.js 父子组件通讯开发实例
Sep 06 Javascript
AngularJS入门教程之过滤器用法示例
Nov 02 Javascript
浅析vue component 组件使用
Mar 06 Javascript
vue中使用better-scroll实现滑动效果及注意事项
Nov 15 Javascript
微信小程序实现星级评价效果
Dec 28 Javascript
vue打包通过image-webpack-loader插件对图片压缩优化操作
Nov 12 Javascript
Vue的生命周期一起来看看
Feb 24 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实现的生成静态HTML速度快类库
2007/03/31 PHP
php简单中奖算法(实例)
2017/08/15 PHP
关于laravel-admin ueditor 集成并解决刷新的问题
2019/10/21 PHP
js下弹出窗口的变通
2007/04/18 Javascript
学习ExtJS TextField常用方法
2009/10/07 Javascript
Jquery 插件开发笔记整理
2011/01/17 Javascript
IE6/7/8中Option元素未设value时Select将获取空字符串
2011/04/07 Javascript
用nodejs实现PHP的print_r函数代码
2014/03/14 NodeJs
动态加载iframe时get请求传递中文参数乱码解决方法
2014/05/07 Javascript
如何处理JSON中的特殊字符
2016/11/30 Javascript
localStorage的黑科技-js和css缓存机制
2017/02/06 Javascript
Angular2搜索和重置按钮过场动画
2017/05/24 Javascript
ReactJs设置css样式的方法
2017/06/08 Javascript
jQuery的时间datetime控件在AngularJs中的使用实例(分享)
2017/08/17 jQuery
node.js中使用Export和Import的方法
2017/09/18 Javascript
微信小程序 页面跳转事件绑定的实例详解
2017/09/20 Javascript
js中split()方法得到的数组长度问题
2018/07/19 Javascript
在vue项目中使用Jquery-contextmenu插件的步骤讲解
2019/01/27 jQuery
解决vue初始化项目一直停在downloading template的问题
2020/11/09 Javascript
原生js实现下拉框选择组件
2021/01/20 Javascript
python实现电子词典
2020/04/23 Python
pygame播放音乐的方法
2015/05/19 Python
Python Django使用forms来实现评论功能
2016/08/17 Python
python+opencv实现的简单人脸识别代码示例
2017/11/14 Python
PyQt5的PyQtGraph实践系列3之实时数据更新绘制图形
2019/05/13 Python
PyCharm GUI界面开发和exe文件生成的实现
2020/03/04 Python
解决html5中video标签无法播放mp4问题的办法
2017/05/07 HTML / CSS
市场营销专业个人自荐信格式
2013/09/21 职场文书
班风口号
2014/06/18 职场文书
2015年秋季小班开学寄语
2015/05/27 职场文书
主持人大赛开场白
2015/05/29 职场文书
茶花女读书笔记
2015/06/29 职场文书
KTV员工管理制度
2015/08/06 职场文书
小学秋季运动会加油口号及加油稿
2019/08/19 职场文书
Keras多线程机制与flask多线程冲突的解决方案
2021/05/28 Python
JPA如何使用entityManager执行SQL并指定返回类型
2021/06/15 Java/Android