elem.style.left与elem.offsetLeft的区别

内容摘要
这篇文章主要为大家详细介绍了elem.style.left与elem.offsetLeft的区别解析,有喜欢html的小伙伴可以来参考一下。
文章正文

这篇文章主要为大家详细介绍了elem.style.left与elem.offsetLeft的区别解析,具有一定的参考价值,可以用来参考一下。

对此感兴趣的朋友,看看idc笔记做的技术笔记。

elem.style.left是元素的最左边(包括元素的margin-left)到offsetParent左边padding(包括左边padding)的距离。

用公式简单的表示一下两者的关系:
elem.offsetLeft = elem.style.left + elem.style.marginLeft
在IE8下:
elem.offsetLeft = elem.style.left + elem.style.marginLeft + elem.offsetParent.borderLeftWidth
在IE7下:
elem.offsetLeft = elem.style.left + elem.style.marginLeft + elem.offsetParent.borderLeftWidth + elem.offsetParent.marginLeftWidth
在IE6下:
elem.offsetLeft = elem.style.left + elem.style.marginLeft + elem.offsetParent.paddingLeftWidth + elem.offsetParent.borderLeftWidth + elem.offsetParent.marginLeftWidth

记录一下,如何取得元素的”计算出的样式”。
function getCurrentStyle(elem, style) {
  return window.getComputedStyle
      ? window.getComputedStyle(elem, null)[style]
      : elem.currentStyle[style];
}

注:关于elem.style.left与elem.offsetLeft的区别解析的内容就先介绍到这里

代码注释

作者:喵哥笔记

IDC笔记

学的不仅是技术,更是梦想!