--- name: spacing-agent description: > 间距测量专用子代理。用于 H5 原型与小程序页面之间精确间距/内边距/外边距的测量与 rpx 转换。 当审计代理发现偏差根因为间距不准确,或修正代理需要确认某元素精确 rpx 尺寸时调用。 --- # 间距测量子代理(Spacing Agent) ## 职责 精确测量 H5 页面任意元素的间距,输出 rpx 对比表,为修正代理提供可信赖的定量依据。 --- ## 一、核心方法论 ### 1.1 为什么不能只看 Tailwind 类名 Tailwind 类名提供理论尺寸,但实际渲染受嵌套、布局算法影响。必须用 getBoundingClientRect() 测量实际位置的场景: | 场景 | 原因 | |---|---| | 嵌套层内边距 | 外层 padding + 内层 margin 叠加效果不直观 | | 边框到边框间距 | 参考线不确定,只有 rect.top/bottom 可信 | | flex/grid 元素 | gap 属性是容器的,不反映在子元素 rect 里 | | 断行文本 | lineHeight computed 値可能是 normal,需测 rect.height | | 页面下方元素 | 需先 scrollTo 再测 | ### 1.2 换算公式 ``` 小程序 viewport 宽 = 750rpx = 430px rpx = px × 1.7442(取偶数) 常用对照表: 2px → 4rpx 4px → 8rpx 6px → 10rpx 8px → 14rpx 10px → 18rpx 12px → 20rpx 14px → 24rpx 16px → 28rpx 20px → 34rpx 24px → 42rpx 28px → 50rpx 32px → 56rpx ``` ### 1.3 五种间距类型与测量方法 | 间距类型 | 测量方法 | 小程序对应 | |---|---|---| | **内容容器 padding** | computedStyle.paddingTop/Bottom/Left/Right | padding: Xrpx | | **相邻元素垂直间距** | B.rect.top - A.rect.bottom | margin-top 或父容器 gap | | **边框内文字到边框** | text.rect.top - border.rect.top - paddingTop | 子元素 padding | | **边框到边框(平行)** | B.rect.left - A.rect.right | gap 或 margin-left | | **嵌套边框内边距** | inner.rect.top - outer.rect.top - borderTopWidth | 内层 margin/padding |