跳到主要内容
前端术语库

骨架屏

Skeleton

UI 组件也叫:骨架图、占位加载、Skeleton Screen、内容占位符

一句话:数据加载完成前,先用灰色块画出页面内容的大致轮廓,加载完再替换成真实内容。

详细解释

骨架屏按真实内容的形状画灰色占位:头像位置画一个灰圆,标题位置画一根粗灰条,正文位置画几根长短不一的细灰条,通常带一道从左往右扫过的微光动画。数据回来后,灰块原地替换成真实内容,布局不会跳动,用户也能提前知道页面长什么样。

它适合页面、列表、卡片的 首次加载。和 加载中 的区别:转圈只说「在等」,骨架屏还提前给出结构;局部刷新、按钮提交这种小等待,用转圈更合适。和 进度条 的区别:进度条表示一件任务完成了多少,骨架屏不表达进度。骨架的形状要和真实内容一致,否则替换时照样会跳。

示例

灰度线框示意,只表达结构,不代表具体视觉风格。

怎么跟 AI 说

可以直接贴给 Cursor、Claude Code 等工具,把里面的业务内容换成你自己的。

文章列表首次加载时显示骨架屏:每条左侧是 48px 灰色圆形头像占位,右侧一根宽 40% 的标题灰条和两根长短不一的正文灰条,共显示 5 条,带从左到右的浅色微光动画;数据返回后原位替换,尺寸与真实内容一致。

结构与适用场景

结构描述

由若干与真实内容同尺寸的浅灰色块组成,如圆形头像块、标题条、段落条和图片块,常带微光扫过的动画。

适用场景

  • 页面、列表或卡片首次加载,且内容结构事先已知
  • 加载时间在一到几秒,希望减少页面跳动和空白感
  • 信息流、商品列表这类由重复卡片组成的内容区

不适用场景

  • 点击按钮后的短暂提交等待,用按钮内的加载中更合适
  • 内容结构不固定,画不出和真实内容一致的轮廓
  • 耗时长且能拿到进度的任务,比如上传大文件

常见坏用法

  • 骨架形状和真实内容完全不同,数据回来后页面照样大幅跳动
  • 数据已经加载完了,还故意多显示一会儿骨架屏
  • 接口报错后骨架屏一直闪,没有切换到错误状态

识别特征

  • 一组浅灰色的圆形和长短不一的圆角横条
  • 没有任何文字,只有内容的轮廓
  • 灰块上可能有一道微光从左往右扫过

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