js 操作css实现代码
2009-06-11 00:00
351 查看
当我们需要的是一条规则的时候,总不能在每次dom发生变化的时候去执行这个操作,否则也太效率低下了。
好在dom中css rules也是可以修改的。不过不同浏览器的对于css rules的接口描述也不同,其中ie中以类似hash table的方式,而ff以数组方式。
从可编程性上说,ie的接口描述更讨程序员喜欢,不过从逻辑上说,ff显然更为合理。
我提供了类似于ie的方式对两套代码进行简单包装,不过ie在dom的css removeRule之后并不能确定同步的把规则兑现。所以最好用规则覆盖的方式而非remove。
需要注意的是,在使用改js函数的时候,页面上至少要有一个style标签。下面是代码及示例。
好在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>
相关文章推荐
- js 操作css实现代码
- 动态加载js、css的简单实现代码
- Js 获取当前日期时间及其它操作实现代码
- 用JS操作FRAME中的IFRAME及其内容的实现代码
- JS+CSS实现带有碰撞缓冲效果的竖向导航条代码
- js操作css属性实现div层展开关闭效果的方法
- jquery.cookie.js 操作cookie实现记住密码功能的实现代码
- js GridView 实现自动计算操作代码
- js+css实现文字散开重组动画特效代码分享
- 如何使用jquery动态加载js,css文件实现代码
- JS+CSS实现大气清新的滑动菜单效果代码
- js列举css中所有图标的实现代码
- jquery.cookie.js && java后台代码 操作cookie实现记住当前用户输入信息代码
- CSS实现鼠标滑过文字弹出一段说明文字无JS代码
- js模拟权限选择实现代码(select操作)
- require.js添加css文件实现代码:css.min.js
- jquery.cookie.js 操作cookie实现记住密码功能的实现代码
- JS+CSS实现出现在网页左侧可折叠在线客户代码
- JS+CSS实现简易的滑动门效果代码
- DIV+CSS+JS实现图片<ul><li></li></ul>无缝滚动代码