obj.offsetHeight与obj.style.height区别

我们都知道obj.offsetHeight与obj.style.height都可以获取obj的高度,但是在js使用中,我们通常会使用前者来获取高度,这是为什么,二者有什么样的区别呢。


1、obj.offsetHeight可以获取写在样式文件里的属性值,而obj.style.height只能获取行内属性,在表现与结构分离的今天,这显然是不合适的
 
2、obj.offsetHeight返回的是一个数值,而obj.style.height返回的是一个字符串,单位是“px”
 
3、obj.offsetHeight是只读,而obj.style.height是可读写
 
4、如果没有为元素设置高度,obj.offsetHeight会根据内容获取高度值,而obj.style.height会返回undefind
 
jQuery里我们使用$(obj).height()来获取元素的高度,($(obj).css('height')返回的是一个带有单位的字符串)。
与其他三个($(obj).height()、$(obj).css('height')、obj.style.height)不同的是,obj.offsetHeight的高度就是height+padding,其他是不把padding计入高度的