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

前端之家收集整理的这篇文章主要介绍了elem.style.left与elem.offsetLeft的区别解析前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
感兴趣的小伙伴,下面一起跟随编程之家 jb51.cc的小编来看看吧。
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];
}

猜你在找的HTML相关文章