HTML ol列表如何处理空列表项

云磊君_8070

云磊君_8070

2026-10-29

600人浏览

原创

空 li 会破坏 ol 编号逻辑与语义结构,因其仍被计数却无实质内容,导致跳号、跨浏览器不一致及辅助技术误读;应从数据层过滤或用 CSS counters 替代原生编号。

html ol列表如何处理空列表项

ol 中出现空 li 会导致编号错位、语义断裂,甚至影响屏幕阅读器播报。这不是浏览器 bug,而是 HTML 规范明确要求:每个 li 应承载有效内容,空项会破坏序列逻辑。

为什么空 li 会让编号跳号或错乱

浏览器对 ol 的编号计数基于 li 元素数量,而非内容是否为空。即使 li 里只有空白字符或完全为空,它仍被计入序号计数——比如

  1. 第一步
  2. 第三步
,渲染结果是「1. 第一步」「2. 」(空行)「3. 第三步」,但语义上第二步缺失,用户无法感知这个“空步骤”是否被跳过。

更严重的是:当 li 包含换行符或空格(如

  • \n
  • ),某些旧版 Safari 或 IE 可能将其视作“有内容”,而 Chrome/Firefox 则按规范忽略空白文本节点——造成跨浏览器编号不一致。

    • 空 li 不触发 :empty 伪类(因换行/空格不是“空”)
    • start 属性和 reversed 属性在空项后仍继续递增/递减,无法自动跳过
    • 辅助技术(如 NVDA、VoiceOver)会读出“列表项 2,空白”,干扰理解

    如何安全地隐藏或跳过空 li 而不破坏结构

    不能靠 CSS 隐藏再指望编号自动重排——list-style-type: none 或 display: none 都不会让浏览器重新计算序号。必须从 DOM 层面移除或标记空项。

    • 服务端或构建时过滤:生成 HTML 前检查 li 文本内容,用 textContent.trim() === '' 判定并剔除
    • 前端运行时清理(仅限动态列表):
      document.querySelectorAll('ol li').forEach(li => {
        if (!li.textContent.trim()) li.remove();
      });
    • 若需保留 DOM 位置(如动画占位),改用 aria-hidden="true" + tabindex="-1" 并添加注释说明:

    用 CSS counters 替代原生编号可绕过空项问题

    原生 ol 编号不可编程跳过,但 CSS 计数器可以条件性递增。适用于需要完全控制编号逻辑的场景(如跳过禁用步骤、合并分组)。

    关键点:

    HTML Text Extract
    HTML Text Extract

    从HTML页面(URL、文件或标准输入)中提取主体内容文本,去除导航、页脚、广告和模板文本。可直接传递给readability_check或其他文本工具。

    下载
    • 给 ol 设 counter-reset: step
    • 只对非空 li:not(:empty) 执行 counter-increment: step
    • 用 ::before 插入编号,避免干扰原生语义

    示例:

    ol.custom-counter {
      counter-reset: step;
    }
    ol.custom-counter li:not(:empty) {
      counter-increment: step;
    }
    ol.custom-counter li:not(:empty)::before {
      content: counter(step) ". ";
      font-weight: bold;
    }

    注意::not(:empty) 在部分老浏览器中不支持,需配合 JS 回退。

    真正该问的问题:这个空 li 是不是不该存在

    绝大多数情况下,空 li 暴露的是数据层或模板逻辑缺陷。比如 CMS 导出时未过滤空字段、React 渲染中用了 {item &&

  • {item}
  • } 但 item 是空字符串而非 null、或者后端返回了 "step": "" 却没做清洗。

    比“怎么隐藏空项”更重要的是:确认业务逻辑是否允许“跳过某一步”。如果允许,应由数据源或组件逻辑决定是否渲染该 li;如果只是临时占位,用 data-placeholder 属性 + JS 控制更清晰。原生 ol 的设计前提就是“每个 li 都代表一个真实、非空的序列单元”。

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

    相关文章

    HTML速学教程(入门课程)
    HTML速学教程(入门课程)

    HTML怎么学习?HTML怎么入门?HTML在哪学?HTML怎么学才快?不用担心,这里为大家提供了HTML速学教程(入门课程),有需要的小伙伴保存下载就能学习啦!

    下载

    相关标签:

    html ol列表 html

    本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

    相关专题

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

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

    2023.06.14

    6775

    7

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

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

    2023.06.21

    3752

    4

    html网页制作
    html网页制作

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

    2023.07.31

    3430

    5

    html空格
    html空格

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

    2023.08.01

    3439

    5

    html是什么
    html是什么

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

    2023.08.11

    5059

    6

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

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

    2023.08.11

    3381

    3

    html转txt
    html转txt

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

    2023.08.31

    3189

    3

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

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

    2023.09.01

    2788

    6

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

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

    2023.09.20

    2908

    5

    热门下载

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

    精品课程

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

    共0课时 | 0人学习

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

    共0课时 | 0人学习

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

    共1课时 | 228人学习