html怎么创建Empty State空状态_html Empty State空状态缺省页设计【大全】

千萱大大_9641

千萱大大_9641

2026-05-23

653人浏览

原创

空状态需包含状态说明、原因提示、可操作入口三要素,用语通俗,交互可聚焦,css控制动效与响应式,ssr需预渲染html,状态判断须细化而非仅依赖布尔值。

html怎么创建empty state空状态_html empty state空状态缺省页设计【大全】

空状态不是“页面没内容”,而是用户预期有内容但系统无法提供时的明确反馈。直接丢个灰色图标加“暂无数据”是无效设计,关键在告诉用户「现在什么情况」「接下来能做什么」。

空状态必须包含三个要素:状态说明 + 原因提示 + 可操作入口

比如搜索结果为空,不能只写“没有找到”,要说明是「搜索词无匹配」还是「网络异常导致未加载」;如果是权限限制,则需明确提示「你没有查看该列表的权限」。可操作入口不一定是按钮——可以是 <a></a> 链接跳转设置页,也可以是 button 触发重试,甚至是一个带 onclick 的图标。常见错误是把空状态做成纯静态文案,用户看完只能刷新或关掉页面。

  • 状态说明用简短主标题(<h3></h3> 或 <strong></strong>),不超过 8 个字
  • 原因提示用普通段落(<p></p>),避免技术术语,如不说「HTTP 404」而说「这个页面可能已被移除」
  • 操作入口必须可聚焦、可键盘触发,禁用 div onclick 模拟按钮

用 CSS 控制空状态的可见性与过渡,别靠 JS 切换 class

空状态是否显示,应由数据逻辑决定,但它的入场动效和响应式表现得交给 CSS。常见做法是给容器加 empty-state 类,再用 :has() 或兄弟选择器联动控制。例如:

.list-container:has(> .empty-state) {
  min-height: 200px;
}
.empty-state {
  opacity: 0;
  transform: translateY(10px);
  transition: opacity 0.2s, transform 0.2s;
}
.list-container:not(:has(> .empty-state)) .empty-state {
  display: none;
}
.list-container:has(> .empty-state) .empty-state {
  opacity: 1;
  transform: translateY(0);
}

这样既避免 JS 频繁操作 DOM,又能让空状态随父容器自然响应高度变化。注意:IE 不支持 :has(),若需兼容,改用 JS 设置 data-empty 属性再用属性选择器。

图标、文字、间距必须统一尺寸系统

空状态里的图标不是装饰,是视觉锚点。它和文字的行高、上下边距、字体大小必须严格对齐。推荐用 em 或 rem 单位建立比例关系:

Wechat HTML Publisher
Wechat HTML Publisher

直接上传HTML富文本到微信公众号草稿箱。支持完整的HTML格式,无需Markdown转换。

下载
  • 图标尺寸设为 2.5rem(即 40px)
  • 主标题字号 1.125rem(18px),行高 1.4
  • 图标与主标题间距 0.75rem(12px)
  • 主标题与说明文字间距 0.5rem(8px)

混用 px 和 rem 会导致缩放时错位;用 flex 布局时别忘了设 align-items: center,否则图标和文字容易垂直偏移。

服务端渲染场景下,空状态 HTML 必须提前输出

如果页面由 SSR(如 Next.js、Nuxt)生成,空状态结构不能等 JS 加载完才插入。否则首屏会闪出空白或骨架屏,再跳成空状态,体验断裂。正确做法是在模板中直接写好空状态 HTML,并用条件注释或服务端变量控制显隐:

<!-- 服务端已知无数据 -->
<div class="list-container">
  <div class="empty-state">
    <svg aria-hidden="true" width="40" height="40">...</svg><h3>暂无订单</h3>
    <p>你还没有创建任何订单</p>
    <button type="button" onclick="location.href='/orders/new'">去下单</button>
  </div>
</div>

客户端 JS 只负责绑定事件和微调动效,不负责生成结构。漏掉这点,SEO 和首屏性能都会受损。

空状态最难的不是画图标或写文案,是判断「此刻到底该显示哪个空状态」——同一个列表,在加载中、加载失败、权限不足、数据为空、搜索无果时,应该展示完全不同的内容。这需要后端返回足够细的状态码,前端按码映射,而不是全堆在一个 isEmpty 布尔值上。

前端入门到VUE实战笔记:立即使用
在学习笔记中,你将探索 前端 的入门与实战技巧!

相关专题

更多
html版权符号
html版权符号

html版权符号是“©”,可以在html源文件中直接输入或者从word中复制粘贴过来,php中文网还为大家带来html的相关下载资源、相关课程以及相关文章等内容,供大家免费下载使用。

2023.06.14

5715

7

html在线编辑器
html在线编辑器

html在线编辑器是用于在线编辑的工具,编辑的内容是基于HTML的文档。它经常被应用于留言板留言、论坛发贴、Blog编写日志或等需要用户输入普通HTML的地方,是Web应用的常用模块之一。php中文网为大家带来了html在线编辑器的相关教程、以及相关文章等内容,供大家免费下载使用。

2023.06.21

3232

4

html网页制作
html网页制作

html网页制作是指使用超文本标记语言来设计和创建网页的过程,html是一种标记语言,它使用标记来描述文档结构和语义,并定义了网页中的各种元素和内容的呈现方式。本专题为大家提供html网页制作的相关的文章、下载、课程内容,供大家免费下载体验。

2023.07.31

2910

5

html空格
html空格

html空格是一种用于在网页中添加间隔和对齐文本的特殊字符,被用于在网页中插入额外的空间,以改变元素之间的排列和对齐方式。本专题为大家提供html空格的相关的文章、下载、课程内容,供大家免费下载体验。

2023.08.01

2939

5

html是什么
html是什么

HTML是一种标准标记语言,用于创建和呈现网页的结构和内容,是互联网发展的基石,为网页开发提供了丰富的功能和灵活性。本专题为大家提供html相关的各种文章、以及下载和课程。

2023.08.11

4759

6

html字体大小怎么设置
html字体大小怎么设置

在网页设计中,字体大小的选择是至关重要的。合理的字体大小不仅可以提升网页的可读性,还能够影响用户对网页整体布局的感知。php中文网将介绍一些常用的方法和技巧,帮助您在HTML中设置合适的字体大小。

2023.08.11

2881

3

html转txt
html转txt

html转txt的方法有使用文本编辑器、使用在线转换工具和使用Python编程。本专题为大家提供html转txt相关的文章、下载、课程内容,供大家免费下载体验。

2023.08.31

2689

3

html文本框代码怎么写
html文本框代码怎么写

html文本框代码:1、单行文本框【<input type="text" style="height:..;width:..;" />】;2、多行文本框【textarea style=";height:;"></textare】。

2023.09.01

2388

6

HTML嵌入CSS样式的方法
HTML嵌入CSS样式的方法

HTML嵌入CSS样式的方法有内联样式、内部样式表和外部样式表。本专题为大家提供CSS样式相关的文章、下载、课程内容,供大家免费下载体验。

2023.09.20

2428

5

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
GDB 17.2 官方文档集合
GDB 17.2 官方文档集合

共0课时 | 0人学习

Bootstrap 入门安装配置
Bootstrap 入门安装配置

共0课时 | 0人学习

38+ PhpStorm 提示和技巧
38+ PhpStorm 提示和技巧

共1课时 | 220人学习