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;

当然博主比较懒 将这两个大哥封装成一个方法

代码如下:

 

这样,就能在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 (一个爱喝雀巢的俗人)
posted @ 2017-11-17 00:44  Lay-Buddhist  阅读(434)  评论(0)    收藏  举报