HTML占位标签是防抖动、压CLS、保首屏稳定的核心基建;img/iframe必须用HTML属性声明width/height,SVG需带viewBox及显式宽高,反馈容器和模态框须硬编码占位,骨架屏必须服务端直出。

HTML占位标签不是“锦上添花”的装饰,而是防抖动、压CLS、保首屏稳定的核心基建。没写 width 和 height 的 ,或没带 viewBox 的 ,本质就是埋在 DOM 里的抖动引信。
img 和 iframe 必须显式声明 width/height 属性
浏览器解析 HTML 时,若 缺少 width 和 height 属性,初始渲染占位为 0×0;图片加载完成瞬间重排,下方所有流内元素被顶下去——这不是动画慢,是结构缺失导致的强制重排。
-
width和height必须是 HTML 属性(即写在标签里),style="width: 100%; height: auto"或aspect-ratio无法替代首帧占位 - 哪怕数值只是近似宽高比(如
),也比空着强
-
同理:必须写;CSS 设置无效,懒加载时抖动感知更强 - 第三方广告位不可预知尺寸?用
在 HTML 源码中硬占位,高度取历史均值
SVG 必须带 viewBox 且推荐显式宽高
不写 viewBox 的 ,旧版 Safari 可能 fallback 到 300×150 默认尺寸,再缩放——等于引入一次重排;只写 viewBox 不写 width/height,某些渲染路径仍可能丢失固有尺寸语义。
生成可在 deepbi 沙箱 iframe 内运行或作为独立文件运行的交互式 HTML 页面,使用 `window.deepbi` JS SDK 实现数据查询、空间管理、文件浏览及用户操作。当用户提出以下需求时启用该能力: - 创建 KPI 仪表盘、数据表格、文件浏览器、成员列表、管理页面; - 明确要求“转成 dhtml”、“转译成 HTML”、“把 XX 页面转成……”、“控制台页面”、“管理后台”、“DeepBI 页面迁移”; - 提及位于 `apps/console/src/featur
- 错误写法:
或 - 推荐写法:
- 若 SVG 是响应式容器内嵌,
width="100%"+height="100%"配合viewBox依然安全,但需确保父容器有明确尺寸约束
反馈容器和模态框要硬编码占位结构
表单校验失败后用 JS 动态插入 很多团队用 最常被忽略的点是:所有占位行为都必须发生在 HTML 解析阶段,而不是 JS 执行之后。一旦你把占位逻辑交给 JS,就已经晚了——浏览器首帧已经画完了空白或错位的页面。
的紧邻兄弟节点,写死在 HTML 源码中visibility: hidden; height: 0; overflow: hidden;,禁用 display: none(会导致父容器高度塌缩)html { overflow-y: scroll } 锁定视口宽度,或在开框时用 document.body.style.marginRight = '17px' 补滚动条宽度骨架屏必须服务端直出,不能靠 JS 插入
useState 控制骨架屏显隐,结果骨架等 JS 下载、解析、执行完才出现——这反而延长了用户第一眼看到内容的时间。真正有效的骨架屏,必须和服务端 HTML 一起输出,初始可见、占位、参与布局流。
)visibility: hidden —— 它保留空间但不可见,JS 显示瞬间若样式未就绪,会闪出原始文字opacity: 0 → 1 切换,配合 transition: opacity 0.3s ease,避免硬切
前端入门到VUE实战笔记:立即使用
在学习笔记中,你将探索 前端 的入门与实战技巧!










