是否有一种简单的方法可以从其直接父级计算offsetLeft,但不包括父级的填充和边框宽度?

当我这样做时,返回的值包括父对象的左边框和填充宽度。

child.offsetLeft - parent.offsetLeft


jsFiddle

我知道我可以简单地减去父项的左边框和填充宽度,但这意味着我必须使用getComputedStyle来检索这些值,剥离“ px”并转换为int,然后最后减去...不存在更好的东西?

最佳答案

看看我的评论。我写的每个元素的offsetLeft属性不包括offsetParent的边框,但有两个例外,这里每个元素的offsetParentdocument.body
所以计算去了

child.offsetLeft - parent.offsetLeft - parent.clientLeft -
    parseInt(getComputedStyle(parent).paddingLeft)


因为两个offsetLeft属性的差异包括父边界。

07-21 23:11