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 相关文章推荐
combox改进版 页面原型参考dojo的,比网上jQuery的那些combox功能强,代码更小
Apr 15 Javascript
JavaScript使用IEEE 标准进行二进制浮点运算产生莫名错误的解决方法
May 28 Javascript
jQuery随机密码生成的方法
Mar 09 Javascript
可以浮动某个物体的jquery控件用法实例
Jul 24 Javascript
分享12个非常实用的JavaScript小技巧
May 11 Javascript
表格展示利器 Bootstrap Table实例代码
Sep 06 Javascript
Node.js中DNS模块学习总结
Feb 28 Javascript
在Vue组件中使用 TypeScript的方法
Feb 28 Javascript
详解JavaScript原生封装ajax请求和Jquery中的ajax请求
Feb 14 jQuery
深入学习TypeScript 、React、 Redux和Ant-Design的最佳实践
Jun 17 Javascript
JavaScript实现左右滚动电影画布
Feb 06 Javascript
mpvue实现微信小程序快递单号查询代码
Apr 03 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
德生PL330测评
2021/03/02 无线电
做一个有下拉功能的留言版
2006/10/09 PHP
详解如何实现Laravel的服务容器的方法示例
2019/04/15 PHP
jquery实现图片裁剪思路及实现
2013/08/16 Javascript
js设置function参数默认值(适合没有传参情况)
2014/02/24 Javascript
javascript操作Cookie(设置、读取、删除)方法详解
2015/03/18 Javascript
页面向下滚动ajax获取数据的实现方法(兼容手机)
2016/05/24 Javascript
Mongoose学习全面理解(推荐)
2017/01/21 Javascript
初识 Vue.js 中的 *.Vue文件
2017/11/22 Javascript
Angular2 自定义表单验证器的实现方法
2018/12/14 Javascript
使用vue-router切换页面时,获取上一页url以及当前页面url的方法
2019/05/06 Javascript
使用vuex解决刷新页面state数据消失的问题记录
2019/05/08 Javascript
nodejs搭建本地服务器并访问文件操作示例
2019/05/11 NodeJs
javascript使用正则表达式实现注册登入校验
2020/09/23 Javascript
Python实现图像几何变换
2015/07/06 Python
Python数据操作方法封装类实例
2017/06/23 Python
python绘制简单彩虹图
2018/11/19 Python
python随机生成大小写字母数字混合密码(仅20行代码)
2020/02/01 Python
python使用隐式循环快速求和的实现示例
2020/09/11 Python
详解Python 中的 defaultdict 数据类型
2021/02/22 Python
纯HTML+CSS3制作导航菜单(附源码)
2013/04/24 HTML / CSS
iframe跨域的几种常用方法
2019/11/11 HTML / CSS
澳大利亚的奢侈品牌:Oroton
2016/08/26 全球购物
美国学校校服,儿童和婴儿服装:Cookie’s Kids
2016/10/14 全球购物
日语翻译个人求职的自我评价
2013/10/14 职场文书
金属材料工程个人求职的自我评价
2013/12/04 职场文书
药学专业学生的自我评价分享
2014/02/06 职场文书
好人好事事迹材料
2014/02/12 职场文书
公司年会主持词
2014/03/22 职场文书
《荷花》教学反思
2014/04/16 职场文书
增员口号大全
2014/06/18 职场文书
新文化运动的口号
2014/06/21 职场文书
避暑山庄导游词
2015/02/04 职场文书
《童年的发现》教学反思
2016/02/18 职场文书
资深HR教你写好简历中的自我评价
2019/05/07 职场文书
面试中canvas绘制图片模糊图片问题处理
2022/03/13 Javascript