首页 > Javascript中子元素的offSetParent属性怎么都指向body元素?

Javascript中子元素的offSetParent属性怎么都指向body元素?

今天通过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文档模式返回不同的标签。

【热门文章】
【热门文章】