getComputeStyle && currentStyle
我们经常通过document.getElementById("element").style.xxx
来获取到元素的样式 问题是这个只可以获取到元素的行内样式信息 ,那如果说是外部的样式表的class属性表呢? 很可惜 不行
一:
不过DOM(document object model)标准中里有个全局方法getComputedStyle可以获取到当前对象样式规则信息,
eg:getComputedStyle(obj,null).paddingLeft,获取到对象的左内边距。
//这个时候兼容性问题就跳出来了 ie并不支持此方法
二:
它有自己的一个实现方式,那就是currentStyle,
不同于全局方法getComputedStyle,它是作为DOM元素属性存在的,
如:obj.currentStyle.paddingLeft,在IE中就获取到对象的左内边距了,
兼容性的写法如下:
return window.getComputedStyle ? window.getComputedStyle(obj,null).paddingLeft : obj.currentStyle.paddingLeft;
不过DOM(document object model)标准中里有个全局方法getComputedStyle可以获取到当前对象样式规则信息,
eg:getComputedStyle(obj,null).paddingLeft,获取到对象的左内边距。
//这个时候兼容性问题就跳出来了 ie并不支持此方法
二:
它有自己的一个实现方式,那就是currentStyle,
不同于全局方法getComputedStyle,它是作为DOM元素属性存在的,
如:obj.currentStyle.paddingLeft,在IE中就获取到对象的左内边距了,
兼容性的写法如下:
return window.getComputedStyle ? window.getComputedStyle(obj,null).paddingLeft : obj.currentStyle.paddingLeft;
当然博主比较懒 将这两个大哥封装成一个方法
代码如下:
![]()
这样,就能在IE及FF中返回对象的当前样式信息了(兼容性很棒有没有)
注意:
如果要获取当前对象的颜色信息,IE返回的是16进制的'#ffffff',而FF返回的是rgb(255,255,255)
总结:
行间样式: 我们可以知道行内样式的获取可以通过document.getElementById("element").style.xxx来获取
非行间样式:1 ie ele.currentStyle[属性名]
2 火狐等 window.getComputedStyle(ele,null)[属性名];
小测试:
![]()


知乎 搜索 TirL (一个爱喝雀巢的俗人)



浙公网安备 33010602011771号