JS中currentStyle和getComputedStyle

在js中常常会获取元素的css样式,方法有不少种,此次只介绍currentStyle和getComputedStylecss

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

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

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

  边框属性可能不会返回样式表中的实际的border规则,是由于不一样浏览器解释综合属性的方式不一样,由于设置这种属性实际上会涉及不少其余的属性,getComputedStyle.border不会在全部浏览器中都有返回值,可是getComputedStyle.borderLeftWidth则会有返回值。有些返回值会不一样,firefox和safari会将全部颜色装换成rgb格式,其余不明。code

  IE不支持这个属性,不过有个相似的属性为currentStyle属性,这个为属性,为style的属性,是CSSStyleDeclaration的实例,包含当前元素所有计算后的样式。IE也不能够返回综合属性的值。对象

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

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 }    
相关文章
相关标签/搜索