<ol>和<li>必须显式闭合,漏写会导致结构错乱、样式失效、屏幕阅读器异常;嵌套时需严格按打开顺序反向闭合,验证方法是源码中<ol>与</ol>数量一致且DOM树中子节点合规。

必须用 </ol> 闭合 <ol>
HTML 中 <ol> 是双标签,必须显式写 </ol> 结束。浏览器不会自动补全,漏写会导致后续所有 HTML 结构错乱——比如 <p> 变成 <ol> 的子元素、CSS 样式失效、屏幕阅读器读不出层级。
常见错误现象:
- 编号突然中断或重复(例如第 3 条后跳回 1)
- 后续段落缩进异常、文字“贴着左边”或“挤在列表项里”
- 开发者工具中看到
<ol>被浏览器强行闭合在不该闭合的位置(如闭合在第一个<li>后)
<li> 也必须闭合,不能省略
<li> 不是自闭合标签,即使只有一行文本,也必须写 </li>。HTML5 允许省略部分闭合标签(如 <p>),但 <li> 不在此列——省略会破坏列表语义,且嵌套时极易出错。
使用场景:
立即学习“前端免费学习笔记(深入)”;
- 单行文本:写
<li>规则一</li>,别写<li>规则一 - 含子列表:子
<ol>必须完整包裹在父<li>内,且父<li>仍需闭合 - 含内联元素(如
<strong>或链接):闭合顺序必须是</strong></li>,不能反着来
嵌套时最容易漏掉的闭合点
嵌套 <ol> 时,闭合顺序必须和打开顺序严格相反。每层 <ol> 和每个 <li> 都要各自配对,否则外层结构直接坍塌。
容易踩的坑:
- 只记得闭合最外层
</ol>,忘了中间嵌套的</ol>和</li> - 把子
<ol>写在父<li>外面,导致子列表脱离语义上下文 - 用缩进代替逻辑闭合,误以为“看起来对齐了就没错”
示例正确结构:
<ol start="34">
<li>主规则一</li>
<li>主规则二</li>
<li>主规则三
<ol type="a">
<li>子规则 a</li>
<li>子规则 b</li>
</ol>
</li>
<li>主规则四</li>
</ol>
验证是否闭合完整的简单方法
不用依赖浏览器渲染结果——那已经晚了。直接看源码或开发者工具 Elements 面板:
- 搜索
<ol,数一下有几个<ol>开始标签,再搜索</ol>,数量必须完全一致 - 逐层展开 DOM 树,确认每个
<ol>下直接子节点只有<li>,没有孤零零的文本或<p> - 检查任意
<li>是否被意外包裹在其他块级标签里(如<div>或<p>),这会切断列表语义链
真正麻烦的不是写错,而是漏闭合后问题延迟暴露——可能上线一周才被发现编号错乱,而根源只是少了一个 </li>。



















