出现问题
今天写一个前端页面,发现obj.style.height竟然获取出来的东西为null,或者干脆什么都不显示,反复思考,回想,以前我就是这样获取的啊,有什么不对???很苦恼啊,在网上试探性的看下有没有答案,结果,真的是我错了,obj.style.height获取css属性的前提是css属性必须是行内样式,不能够是外部引入的,也不能够是写在当前head中的style标签样式里。那该怎么解决呢??
解决问题
DOM标准里有个全局方法getComputedStyle,可以获取到当前对象样式规则信息,如:getComputedStyle(obj,null).paddingLeft,就能获取到对象的左内边距。但是事情还没完,万恶的IE不支持此方法,它有自己的一个实现方式,那就是currentStyle,不同于全局方法getComputedStyle,它是作为DOM元素属性存在的,如:obj.currentStyle.paddingLeft,在IE中就获取到对象的左内边距了,兼容性的写法如下:
return getComputedStyle ? getComputedStyle(obj,null).paddingLeft : obj.currentStyle.paddingLeft;
顺便提一下,getComputedStyle是在window下面的一个全局方法。
好了,解决!!
参考资料: