获取元素的宽高等属性值,解决兼容性——纯JS

描述:.style 只能获取行间属性。而getComputedStyle不兼容IE678,currentStyle不兼容除了IE外的其他浏览器。

解决办法:

function getStyle( obj, attr ){
  return obj.currentStyle ? obj.currentStyle[attr] : getComputedStyle( obj )[attr];
}

封装后写法:

getStyle( oBtn,'marginRight' );

注意事项:

1、只能获取单一样式,不能获取复合样式。会有兼容性问题

复合样式例如:background,包含很多颜色背景图片等属性。改为单一样式,例如:backgroundColor

2、属性名marginRight 处不要手抖多打空格,否则会undefined

3、不要获取未设置的样式,比如marginRight没设置就不要获取,否则会不兼容,不同浏览器获取结果不同

posted @ 2017-04-18 11:28  念念念不忘  阅读(314)  评论(0)    收藏  举报