今天通过Javascript求元素的offSetLeft的时候,发现无论子元素的直接父元素是不是body,通过offSetParent取得的都是body元素。比如:
<html>
<body id = "body">
<div id = "div1">
<div id = "div2">
<img id = "img" src="./example.png" alt="example">
</div>
</div>
</body>
</html>
通过document.getElementById("img").offSetParent
取得的是body
元素,为什么会跳过其它的父级元素(div
元素)?
因为外层的DIV没有进行定位,你需要使用 absolute或relative进行定位。
html in standards compliant mode; body in quirks rendering mode
当没有定位过的父标签,会根据html文档模式返回不同的标签。