offset三大家族

以下是关于 offset 三大家族的知识点总结:

1. offsetParent

  • 定义 :offsetParent 是距离目标元素最近的已定位(position 不为 static)的祖先元素。
  • 特点 :
    • 如果父级元素都没有定位,则 offsetParent 为 body。
    • 与 parentNode 和 parentElement 不同,offsetParent 与定位有关。

2. offsetLeft 和 offsetTop

  • 定义 :offsetLeft 和 offsetTop 分别表示目标元素相对于其 offsetParent 左边缘和上边缘的偏移量。
  • 特点 :
    • 如果父级元素都没有定位,则偏移量是相对于 body 的距离。
    • 这些值适合用于计算,但不带单位,因此不能直接用于设置样式。

3. offsetWidth 和 offsetHeight

  • 定义 :offsetWidth 和 offsetHeight 分别表示目标元素的布局宽度和高度。
  • 包含内容 :
    • 内容区域、内边距(padding)和边框(border)。
    • 不包括外边距(margin)。
  • 特点 :
    • 这些值适合用于计算,但不带单位,因此不能直接用于设置样式。

4. 注意事项

  • 计算高度 :offsetHeight 不会包含 margin。
  • 与定位的关系 :offsetParent 与定位有关,而 parentNode 和 parentElement 与定位无关。
  • 使用场景 :offsetLeft 和 offsetWidth 等属性适合用于计算,但不适合直接用于设置样式。

5. 总结

  • offset 三大家族(offsetParent、offsetLeft/offsetTop、offsetWidth/offsetHeight)主要用于获取元素的位置和尺寸信息,适合用于计算和布局调整。
  • 这些属性与元素的定位和布局密切相关,但在设置样式时需要注意其不带单位的特点。
相关推荐
李纲明1 小时前
微信小程序 getSystemInfo 提示已废弃、屏幕高度算错胶囊还对不齐?getWindowInfo 和 getDeviceInfo 怎么接才稳
javascript·微信小程序·小程序·小程序开发·devdiy
FungLeo2 小时前
成为全栈·Vue 管理后台篇·用 fetch 建一层可控的请求内核
前端·javascript·vue.js·http·fetch·formdata·接口封装
用户84298142418102 小时前
ByteJS,让重要的 JavaScript 以字节码运行。
javascript
FungLeo4 小时前
成为全栈·Vue 管理后台篇·Vue Router如何守住多角色后台边界
前端·javascript·vue.js·rbac·vue router·路由守卫·前端权限
FungLeo5 小时前
成为全栈·Vue管理后台篇·仪表盘不是几张卡片:组合统计接口与角色视图
前端·javascript·vue.js·rbac·仪表盘·管理后台·tanstack query
程序员大阳5 小时前
HTML+CSS+JS对话式实战(7)-学生端活动报名功能开发
javascript·css·html·活动报名
西安小哥5 小时前
做 Agent 写到第三个小时,我开始给它算账
javascript
西安小哥5 小时前
让大模型操作浏览器跑了两周,我发现瓶颈根本不在模型
javascript
用户298698530146 小时前
用 Python 自动化把 JavaScript 代码转换为 Word 文档
javascript·python·api
学以智用6 小时前
正则表达式完整参考手册(JavaScript 版,兼容绝大多数语言)
javascript