所以我在读一本书,发现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
为什么? 好心的帮助
来自MDN(重点矿井):
HtmlElement.OffsetParent只读属性返回对最接近(在包含层次结构中最接近)定位的祖先元素的引用。
即。 在您的示例中,body
元素是div
和h1
中位置最近的元素。 如果您想要直接父元素,请改用ParentElement
。
(FWIW,使用offsetparent
的主要原因是标识offsettop
和offsetlef
相对于哪个父元素的坐标系。)