CLS 指标:布局意外偏移,理想值≤0.1
一、固定元素尺寸
- 图片/视频提前设宽高、aspect-ratio 比例占位
- 图标、广告、弹窗预留固定容器空间
- 字体图标预先占位,避免加载后撑开布局
二、样式加载管控
- 关键CSS内联到head,非关键样式异步加载
- 禁止无宽高默认块级元素动态渲染
- 避免JS动态修改top/left/margin引发偏移
三、资源加载优化
- 图片预加载、懒加载指定占位尺寸
- 字体使用font-display:swap,防止字体闪烁偏移
- 第三方脚本、广告组件限定容器大小
四、交互与动态元素
- 折叠面板、弹窗默认预留展开高度
- 表单校验提示、报错文案固定占位区域
- 骨架屏替代空白加载态
五、布局写法规范
- 优先Flex/Grid稳定布局,少用绝对定位
- 避免DOM频繁增删、层级大幅变动
- 滚动容器限定overflow,防止溢出挤动页面
六、兜底优化
- 控制动态内容渲染时机,避免首屏突变
- 检测CLS异常点位,针对性锁定容器尺寸
- 禁用加载阶段动画位移
七、 如何排查与监控?
- Chrome DevTools: 在
Performance面板勾选Layout Shifts。点击蓝色的偏移条,它会直接高亮显示是哪个元素发生了偏移以及偏移的原因。 - Lighthouse: 定期运行审计,查看“Avoid large layout shifts”建议。