> For the complete documentation index, see [llms.txt](https://yangsx95.gitbook.io/notes/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://yangsx95.gitbook.io/notes/front-end/tools-lib/window-offset.md).

# window offset

!\[]\(Window Offset.assets/aHR0cDovL2ltZy5ibG9nLmNzZG4ubmV0LzIwMTcwMTE0MTcwNjE1NzA2.png)

`OffsetWidth`：对象本身的宽度 = width +padding + border，而 `width` 则是指css中设置的width属性，注意二者的区别。

`offsetWidth` 元素的高度很大部分情况是由子元素撑出高的，这个高度是无法获得的，我们所以需要这个属性获取不确定的高度值。

`offsetLeft` 返回与上级盒子( **带有定位的**)左边的距离

`offsetTop` 返回与上级盒子( **带有定位的**)上边的距离，如果父级都没有定位，则会以body为上级盒子。

`offsetLeft`， `offsetTop` 与 `left` `top` 的区别：

1. 后两者使用时需要元素定位，而前两者则不需要。
2. 如果没有给HTML元素指定top值（ **并且必须是行内样式 `<p style="width=200px;">`**），那么 `style.top` 就获取不到任何值，而 `offsetTop` 则可以。
3. 前二者得到的是 200px（含有px），而后二者是 200（数字）。所以前者不方便操作（我们经常需要对获取的长度进行加减操作）。
4. 前二者是只读的，无法更改，而后二者是读写得

`offsetParent` 返回该对象的父级( **不一定是直接父类，带有定位的**)
