css 为什么.offsetParent返回未定位元素的最近表

vmjh9lq9  于 2022-11-27  发布在  其他
关注(0)|答案(1)|浏览(109)

the MDN documentation for Element.offsetParent开始:
HTMLElement.offsetParent只读属性会传回对象的指涉,此对象是最近(在内含项目阶层中最近)定位的包含元素。如果元素是未定位的,则offsetParent会传回最近的表格、表格储存格或根元素
为什么.offsetParent在元素没有定位的情况下返回最近的表(即position: static)?为什么.offsetParent不总是返回最近定位的元素?
我知道我的问题的答案是“因为标准是这样说的”,但是为什么标准的开发者会做出这样的决定呢?这种行为的目的是什么?

0x6upsns

0x6upsns1#

这些文件充其量是误导性的。
新版本更加清晰:
定位的祖系为:

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

因此,如果在最近的tdthtable之前有一个元素,则.offsetParent会“返回最近的定位元素”:
第一个
至于为什么他们决定这些元素应该被视为定位元素,即使他们计算的position"static",这肯定是因为他们的位置实际上是由规则决定的,而这些规则与 static 的规则不匹配。

相关问题