提问者:小点点

为什么offsetParent仍然显示正文标记?


所以我在读一本书,发现offsetParent不能有一个静态的位置。

所以我试图通过编写自定义代码来实现这一点:

代码:HTML5

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title></title>
</head>
<body style="position: static;">
    <div id="div" style="position: static;">
        <h1 id="hi">hi</h1>
    </div>
</body>
</html>

但当我在控制台中测试时,我发现:

console.log(div.offsetParent, h1.offsetParent);  // BODY TAG

为什么? 好心的帮助


共1个答案

匿名用户

来自MDN(重点矿井):

HtmlElement.OffsetParent只读属性返回对最接近(在包含层次结构中最接近)定位的祖先元素的引用。

即。 在您的示例中,body元素是divh1中位置最近的元素。 如果您想要直接父元素,请改用ParentElement

(FWIW,使用offsetparent的主要原因是标识offsettopoffsetlef相对于哪个父元素的坐标系。)