
html 中嵌套 `
- ` 列表时,若将 `
- ` 直接置于 `
- ` 的 `
- ` 外部(如兄弟元素),浏览器会将其视为多个独立列表,导致编号重置为 1;正确做法是将子 `
- ` 严格嵌套在父 `
- ` 内部,才能继承并延续序号。
在 HTML 规范中,有序列表
- 的编号连续性完全依赖于其 DOM 结构层级
- 元素属于同一个
- 父容器时,编号才会自动递增(1 → 2 → 3…)。而一旦
- 被错误地放在
- 内但脱离
- 上下文(例如紧随
- 后作为同级标签),它就成为一个全新的、孤立的列表——无论 CSS 类名是否相同,编号都会从 1 重新开始。
你原始代码的问题正在于此:
- General Aviation (piston-driven engines)
- Single-Engine Aircraft
- Dual-Engine Aircraft
上述写法违反了 HTML 列表嵌套语义——
- 和
- 只能包含
- (以及
-
CSS 类复用更安全:无需为每个
- 单独定义 .f 类,可统一用 ol { list-style-type: decimal; },再通过嵌套选择器微调(如 ol ol { list-style-type: upper-roman; });
- 验证结构:使用 W3C Markup Validator 检查 HTML 是否符合标准,及时发现非法嵌套;
- 无障碍友好:正确嵌套确保屏幕阅读器能准确播报层级关系(如 “列表项 1,子列表,罗马数字一…”)。
? 总结:HTML 列表编号不是由 CSS 驱动,而是由 DOM 层级决定。要获得连续十进制编号,请始终确保所有
- 属于同一个
- ,并将子列表(
- 或
- )作为父
- 的直接子元素嵌入——结构即逻辑,语义即功能。
- ` 内部,才能继承并延续序号。











