UI 组件 · 反馈
骨架屏
Skeleton
也叫:骨架图、占位加载、Skeleton Screen、内容占位符
数据加载完成前,先用灰色块画出页面内容的大致轮廓,加载完再替换成真实内容。
点「标注」看每个部分叫什么。
怎么跟 AI 说
改成你的业务内容再发文章列表首次加载时显示骨架屏:每条左侧是 48px 灰色圆形头像占位,右侧一根宽 40% 的标题灰条和两根长短不一的正文灰条,共显示 5 条,带从左到右的浅色微光动画;数据返回后原位替换,尺寸与真实内容一致。
发给
01判断
你的内容是这样吗?
对照两列,确认骨架屏是不是你要找的。
02避坑
常见坏用法
看起来能用,其实会给用户添麻烦。
- 01
骨架形状和真实内容完全不同,数据回来后页面照样大幅跳动
- 02
数据已经加载完了,还故意多显示一会儿骨架屏
- 03
接口报错后骨架屏一直闪,没有切换到错误状态
03识别
怎么认出它
先看整体结构,再对照几个一眼能认出的特征。
结构
由若干与真实内容同尺寸的浅灰色块组成,如圆形头像块、标题条、段落条和图片块,常带微光扫过的动画。
组成部分点一下,在上面的线框里标出来
识别特征
- 1一组浅灰色的圆形和长短不一的圆角横条
- 2没有任何文字,只有内容的轮廓
- 3灰块上可能有一道微光从左往右扫过
04解释
详细解释
骨架屏按真实内容的形状画灰色占位:头像位置画一个灰圆,标题位置画一根粗灰条,正文位置画几根长短不一的细灰条,通常带一道从左往右扫过的微光动画。数据回来后,灰块原地替换成真实内容,布局不会跳动,用户也能提前知道页面长什么样。
它适合页面、列表、卡片的 首次加载。和 加载中 的区别:转圈只说「在等」,骨架屏还提前给出结构;局部刷新、按钮提交这种小等待,用转圈更合适。和 进度条 的区别:进度条表示一件任务完成了多少,骨架屏不表达进度。骨架的形状要和真实内容一致,否则替换时照样会跳。
开发者信息术语 ID、DOM 线索、识别优先级
- 术语 ID
component-skeleton- DOM 选择器
插件在本地识别时匹配这些 CSS 选择器(标签、ARIA role、常见组件库 class)。
.ant-skeleton.el-skeleton[class*="MuiSkeleton-root"].arco-skeleton.t-skeleton.n-skeleton[data-slot="skeleton"].placeholder-glow.placeholder-wave.animate-pulse
- 类名关键词
类名、id、data-testid 拆成单词后连续匹配,例如 page-header、PageHeader_root__x7a、pageHeader 都拆成 page、header。
skeletonshimmerskeleton-lineloading-skeleton
- 组件名
React / Vue 开发模式下读到的组件名,不区分大小写,会去掉 El、Ant、Mui 这类组件库前缀。
Skeleton
- 优先级
- 1 · 同一层有多条命中时,优先级高的胜出
- 版本
- v2 · 更新于 2026/09/30