js 操作css实现代码
当我们需要的是一条规则的时候,总不能在每次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>
相关推荐
-
用js控制css的不错的方法
#tabs UL {DISPLAY: inline; PADDING-LEFT: 0px; MARGIN-LEFT: 10px; WHITE-SPACE: nowrap} #tabs UL LI {BORDER-RIGHT: #999 1px solid; PADDING-RIGHT: 8px; BORDER-TOP: #999 1px solid; DISPLAY: inline; PADDING-LEFT: 12px; FONT-SIZE: x-small; BACKGROUND: #eee
-
如何用js控制css中的float的代码
ie里面用styleFloat 其他用cssFloat 本文向大家简单介绍一下JS操作css的float属性的特殊写法,对于含有中划线的css属性,将每个中划线去掉并将每个中划线后的第一个字符换成大写即可. Js style float JS操作css的float属性的特殊写法 使用js操作css属性的写法是有一定的规律的: 1.对于没有中划线的css属性一般直接使用style.属性名即可. 如:obj.style.margin,obj.style.width,obj.style.left,ob
-
用JavaScript修改CSS属性的代码
用JavaScript修改CSS属性 只有写原生的javascript了. 1.用JS修改标签的 class 属性值: class 属性是在标签上引用样式表的方法之一,它的值是一个样式表的选择符,如果改变了 class 属性的值,标签所引用的样式表也就更换了,所以这属于第一种修改方法. 更改一个标签的 class 属性的代码是: document.getElementById( id ).className = 字符串; document.getElementById( id ) 用于获取标签对
-
JS修改css样式style浅谈
一.局部改变样式 分为改变直接样式,改变className和改变cssText三种.需要注意的是: 注意大小写: javascript对大小写十分敏感,className不能够把"N"写成"n",cssText也不能够把"T"写成"t",否则无法实现效果. 调用方法: 如果改变className,则事先在样式表中申明类,但调用时不要再跟style,像document.getElementById('obj').style.cl
-
js 设置css的定位
new document .WOKAO [Ctrl+A 全选 注:如需引入外部Js需刷新才能执行]
-
动态调用CSS文件的JS代码
复制代码 代码如下: <script type="text/javascript" language="javascript"> var _sn = ["df/common", "df/home2010"]; var _su = "http://www.jb51.net/skin/"; var Swidth = screen.width; var _se, _st; for (i in _sn)
-
CSS和JS标签style属性对照表(方便js开发的朋友)
盒子标签和属性对照 CSS语法(不区分大小写) JavaScript语法(区分大小写) border border border-bottom borderBottom border-bottom-color borderBottomColor border-bottom-style borderBottomStyle border-bottom-width borderBottomWidth border-color borderColor border-left borderLeft bor
-
js控制CSS样式属性语法对照表
CSS与JS紧密配合,为我们的页面增添了很多别致的效果.为了达到某种特殊的效果我们需要用Javascript动态的去更改某一个标签的CSS属性. 例如常用的关闭某个漂浮的广告显示:document.getElementById('ad').style.display='none';相当于:.ad{ display:none}. 下面就是JS 控制CSS样式表的语法对照: CSS语法 (不区分大小写) JavaScript语法 (区分大小写) border border border-bott
-
js css样式操作代码(批量操作)
我们用js书写css样式通常会用下面的两种方式: 一般情况下我们用js设置元素对象的样式会使用这样的形式: 复制代码 代码如下: var element= document.getElementById("id"); element.style.width="20px"; element.style.height="20px"; element.style.border="solid 1px red"; 但是上面的方法有一个缺
-
JS函数实现动态添加CSS样式表文件
先给出函数. 复制代码 代码如下: varaddSheet=function(){ vardoc,cssCode; if(arguments.length==1){ doc=document; cssCode=arguments[0] }elseif(arguments.length==2){ doc=arguments[0]; cssCode=arguments[1]; }else{ alert("addSheet函数最多接受两个参数!"); } if(!+"v1"
-
JS 控制CSS样式表
下面先记录一下JS控制CSS所使用的方法. 1.使用javascript更改某个css class的属性... <style type="text/css"> .orig { display: none; } </style> 你想要改变把他的display属性由none改为inline. 解决办法: 在IE里: document.styleSheets[0].rules[0].style.display = "inline"; 在firef
-
用JS实现一个页面多个css样式实现
第一步:在连接样式表的元素里定义一个id,例如 复制代码 代码如下: <link href="1.css" rel="stylesheet" type="text/css" id="css">, 我定义的id是css. 第二步:写一个js函数,代码如下: 复制代码 代码如下: <script type="text/javascript"> function change(a){
-
JS控制CSS样式的方法
群里的兄弟问的效果 无标题文档 p.p1{ background-color:#FF0000;font-size:22px;_ font-family:"方正舒体"; font-weight:100; } function remove(){ var wc = document.styleSheets[0], i; for (i = 0 ; i hello,this is a example of stylesheets hello,this is a example of style
-
js CSS操作方法集合
//获取元素的真实的,最终的CSS样式属性值的函数 function getStyle(elem,name){ if(elem.style[name]){ return elem.style[name]; }else if(elem.currentStyle){ return elem.currentStyle[name]; }else if(document.defaultView && document.defaultView.getComputedStyle){ name = nam
-
js中巧用cssText属性批量操作样式
给一个HTML元素设置css属性,如 复制代码 代码如下: var head= document.getElementById("head"); head.style.width = "200px"; head.style.height = "70px"; head.style.display = "block"; 这样写太罗嗦了,为了简单些写个工具函数,如 复制代码 代码如下: function setStyle(obj,c
随机推荐
- C# 连接Access数据时总报找不到dbo.mdb的问题
- 前端开发的开始---基于面向对象的Ajax类
- vue.js实例对象+组件树的详细介绍
- 详解iOS App开发中改变UIButton内部控件的基本方法
- asp.net下将图片保存到XML文件的方法
- 使用gd库实现php服务端图片裁剪和生成缩略图功能分享
- C++开发在IOS环境下运行的LRUCache缓存功能
- C++和java设计模式之单例模式
- 深入理解JavaScript系列(41):设计模式之模板方法详解
- Linux中使用mysqladmin extended-status配合Linux命令查看MySQL运行状态
- 探讨Ajax中有关readyState(状态值)和status(状态码)的问题
- Shell根据web日志计算平均连接时间功能
- jquery $.ajax入门应用二
- 打印菱形以及斐波纳契数列的几种解法介绍
- Android GPS定位详解及实例代码
- C#生成防伪码的思路及源码分享
- Bo-Blog专用的给Windows服务器的IIS Rewrite程序
- 解析C#设计模式编程中外观模式Facade Pattern的应用
- python放大图片和画方格实现算法
- Python3内置模块之base64编解码方法详解