js获取css属性失败

出现问题

今天写一个前端页面,发现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下面的一个全局方法。

好了,解决!!

参考资料:

原文资料

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值