多级目录必须用嵌套而非,因提供语义顺序、屏幕阅读器正确播报及seo识别;子须作为父的直接子元素才能延续编号,否则计数重置。

多级目录必须用 <ol></ol> 嵌套,不能用 <ul></ul>
目录天然有序,章节编号不可互换。<ol></ol> 提供语义顺序、屏幕阅读器正确播报、SEO 结构化识别,还支持 type、start 等原生控制;<ul></ul> 只能视觉模拟,无语义、不可访问、打印时编号易丢失。
常见错误现象:
– 屏幕阅读器读作“列表项一、列表项二”,而非“第二章、第三章”
– 搜索引擎不识别章节层级
– 用 CSS 的 list-style-type: decimal 导致编号错位或截断
<ol type="A"></ol> 嵌套 <ol></ol> 才能延续计数
浏览器默认对每个 <ol></ol> 独立计数。想实现 A. → 1. → a. 这类连续编号,唯一可靠方式是子 <ol></ol> 必须作为父 <li> 的**直接子元素**,不能写在父 外面。
- ✅ 正确:
<ol type="A"><li>A. 主项<ol><li>1. 子项</li></ol> </li></ol> - ❌ 错误:
<ol type="A"><li>A. 主项</li></ol> <ol><li>1. 子项</li></ol>(孤立<ol></ol>,计数重置为 1) - ⚠️ 注意:HTML 空白符(换行/缩进)不影响嵌套关系,但
<div>、<code><p></p>等非<li>容器包裹子<ol></ol>会破坏结构超过三层嵌套(如 2.1.1.1)要谨慎
深层嵌套会显著降低可读性,也增加维护成本;浏览器 UA 样式对
list-style-position: inside支持不一致,容易导致编号被截断。- 二级目录用
<ol></ol>嵌套在父<li>内,编号自然延续(如 “2.1 事件绑定”) - 若子项本身无顺序(比如罗列 API:addEventListener、removeEventListener),可用
<ul></ul>嵌套,但外层仍须是<ol></ol> - 避免用
start手动跳号来“修复”嵌套断裂——这掩盖了结构问题,JS 或爬虫仍无法理解真实层级
锚点链接和路径管理常被忽略
多级目录本质是可聚焦、可跳转的导航结构。每个目录项必须直接包裹带
href的<a></a>,且id必须唯一、大小写敏感、与href中的 fragment 严格匹配(如href="#chapter2"对应id="chapter2")。- 路径错乱?在
加<base href="/docs/">,之后所有链接统一用根路径写法:href="guide/intro.html" - 必须带结尾斜杠:
/docs/≠/docs(后者会导致路径解析异常) - 开发时若用
file://协议,<base>会被忽略,需起本地 server 测试
<ol></ol>真实嵌在父<li>内部,而不是闭合后另起一行。 - 二级目录用











