JS中currentStyle和getComputedStyle

一.在js中经常会获取元素的css样式,方法有很多种,这次只介绍currentStyle和getComputedStyle

  1.obj.style这个方法只能获取在HTML中写的行间样式,内联样式不能获取,更别说外联样式了。

  2.IE中使用的是obj.currentStyle方法,而firefox中使用的是getComputedStyle方法

“DOM2级样式”增强了document.defaultView,提供了getComputedStyle()方法,这个方法接受两个参数,要取得计算样式的元素和一个伪元素字符串(例如:":after")。如锅不需要伪类元素信息,第二个参数可以设置成false。getComputedStyle()方法可以返回一个CSSStyleDeclaration对象,其中包含当前元素的所有计算的样式。

  边框属性可能不会返回样式表中的实际的border规则,是因为不同浏览器解释综合属性的方式不同,因为设置这种属性实际上会涉及很多其他的属性,getComputedStyle.border不会在所有浏览器中都有返回值,但是getComputedStyle.borderLeftWidth则会有返回值。有些返回值会不同,firefox和safari会将所有颜色装换成rgb格式,其他不明。

  IE不支持这个属性,不过有个类似的属性为currentStyle属性,这个为属性,为style的属性,是CSSStyleDeclaration的实例,包含当前元素全部计算后的样式。IE也不可以返回综合属性的值。

  3.getComputedStyle()为方法,currentStyle为style属性。

1 function getStyle(obj,name) {
2   if(obj.currentStyle){
3   return obj.currentStyle[name];
4  }
5   else{
6    return getComputedStyle(obj,false)[name];
7 }
8 }    
时间: 2024-07-29 08:30:19

JS中currentStyle和getComputedStyle的相关文章

js用currentStyle和getComputedStyle获取css样式(非行间)

用js的style属性可以获得html标签的样式,但是不能获取非行间样式.那么怎么用js获取css的非行间样式呢?在IE下可以用currentStyle,而在火狐下面我们需要用到getComputedStyle.下面是一个小示例: <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/ht

js用currentStyle和getComputedStyle获取css样式(非行间) 兼容ie与火狐

用js的style属性可以获得html标签的样式,但是不能获取非行间样式.那么怎么用js获取css的非行间样式呢?在IE下可以用currentStyle,而在火狐下面我们需要用到getComputedStyle.下面是js代码. function getStyle(obj, name) { if(obj.currentStyle) { return obj.currentStyle[name]; } else { return getComputedStyle(obj,false)[name];

JS中获取CSS样式的方法

1.对于内联样式,可以直接使用ele.style.属性名(当然也可以用键值对的方式)获得.注意在CSS中单词之间用-连接,在JS中要用驼峰命名法 如 <div id="dv" style="width: 100px;height: 200px;background-color: pink; border: 1px solid green;"></div> <script> var dv = document.getElementB

js中style,currentStyle和getComputedStyle的区别

js中style,currentStyle和getComputedStyle的区别 MarysMa 在js中用xx.style.marginTop是无法获取写在css或<sytle>标签中的margin-top之类的样式值(包括width,height等). 这就是style属性的限制: style :只能获取元素的内联样式,内部样式和外部样式使用style是获取不到的.(内联样式: body中标签里用style直接写的样式.) currentStyle :可以弥补style的不足,但是只适用

js中style,currentStyle和getComputedStyle的区别以及获取css操作方法

一.style,currentStyle和getComputedStyle的区别 <script>  function getStyle(obj, attr)   {       if(obj.currentStyle)       {          return obj.currentStyle[attr];  //只适用于IE     }       else       {          return getComputedStyle(obj,false)[attr];   //

JavaScript中style, currentStyle和 getComputedStyle的异同

今天在做项目的时候,习惯性的用到了element.style.width,然而浏览器却报错,错误提示是style is undefined,这是我才意识到,内联样式表和外联样式表在js应用中也有很大的不同! 首先样式表有三种,外联样式,内联样式,行间样式,element.style.attr只有在attr定义在行间样式时才生效,因此替代方案,currentStyle和getComputedStyle出现了. currentStyle是由微软提出来的,目的就是为了返回当前元素应用的属性,不管是外联

js中的各种宽高以及位置总结

在javascript中操作dom节点让其运动的时候,常常会涉及到各种宽高以及位置坐标等概念,如果不能很好地理解这些属性所代表的意义,就不能理解js的运动原理,同时,由于这些属性概念较多,加上浏览器之间 实现方式不同,常常会造成概念混淆,经过研究之后,这里来进行一个总结. 第一部分:DOM对象 1.1只读属性 所谓的只读属性指的是DOM节点的固有属性,该属性只能通过js去获取而不能通过js去设置,而且获取的值是只有数字并不带单位的(px,em等),如下: 1)clientWidth和client

js中元素属性值的获取

一.样式表的三种方式 1.内嵌样式(inline style):是写在tag标签当中的,用style=“”来表示,只对当前标签生效: 2.内部样式(inner style sheet):是写在HTML中的,一般写在head标签中,对所在的网页有效 3.外部样式表(Extend style sheet):写在单独文件,需要用link标签单独引入,可对多个网页生效 二.获取style样式属性 1.在js中,通过document.getElementById("id").style.xxx就

JS中的模块化开发之Sea.JS

模块化开发的好处: 1:减少冲突 2:提高性能 用sea.js为例:sea.js模块库下载地址:http://seajs.org/docs/#downloads 例子:获取非行间样式的模块化开发: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html xmlns="