首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为什么.offsetParent返回非定位元素的最近表?

为什么.offsetParent返回非定位元素的最近表?
EN

Stack Overflow用户
提问于 2017-09-30 18:22:04
回答 1查看 314关注 0票数 8

来自Element.offsetParent

HTMLElement.offsetParent只读属性返回对对象的引用,该对象是位于包含元素的最接近的对象(在包含层次结构中最近)。如果元素未定位,则由返回最近的表、表单元格或根元素。

如果元素没有定位,为什么.offsetParent返回最近的表(即position: static)?为什么.offsetParent不总是返回最近的定位元素?

我知道我的问题的答案是“因为标准是这么说的”,但是为什么标准的开发人员会这样决定呢?这种行为的目的是什么?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-11-23 02:08:48

医生们充其量只是误导或误导。

新版本更清楚:

定位的祖先是:

  • 具有非静态位置的元素,或
  • 如果元素本身是静态的,tdthtable

因此,如果在最近的.offsetParentthtable之前有一个元素,则th会“返回最近的定位元素”。

代码语言:javascript
复制
console.log("in positioned", target1.offsetParent);
console.log("in static", target2.offsetParent);
代码语言:javascript
复制
.positioned { position: relative }
代码语言:javascript
复制
<table>
  <tbody>
    <tr>
      <td>
        <div class=positioned>
          <span id=target1>content</span>
        </div>
      </td>
      <td>
        <div class=static>
          <span id=target2>content</span>
        </div>
      </td>
    </tr>
  </tbody>
</table>

至于为什么他们决定将这些元素作为定位元素来处理,即使它们的计算position"static",这当然是因为它们的位置实际上是由与静态规则不匹配的规则决定的。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/46505758

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档