ol标签必须仅包含li子元素,纯文本或p/div等会被忽略;start属性设整数起始编号(ie不支持),reversed实现倒序(仅decimal类型有效),type切换样式但语义不变。

ol 标签必须包含 li 子元素,不能直接写文本
浏览器会忽略 <ol>Hello</ol> 里的纯文本,编号不会出现,也不会报错。正确结构是每个条目必须用 <li> 包裹:
<ol> <li>第一项</li> <li>第二项</li> <li>第三项</li> </ol>
常见错误包括把 <p></p> 或 <div> 直接塞进 <code><ol></ol>——HTML 规范只允许 <li>(以及 <script></script>、<template></template> 等少数例外)作为直接子元素。
start 属性控制起始编号,但不改变语义顺序
想从 5 开始编号?用 start 属性即可:
<ol start="5"> <li>这是第五项</li> <li>这是第六项</li> </ol>
注意:start 只影响视觉编号,不影响 DOM 顺序或可访问性(如屏幕阅读器仍按实际位置播报“第 1 项”)。若需语义上跳过前几项,应配合 aria-setsize 和 aria-posinset 手动标注。
将调研报告、方案对比、数据分析、需求梳理、会议纪要、设计说明、代码评审、学习笔记等任务产物输出为可在浏览器直接打开的单文件 HTML,替代 Markdown 作为最终交付物。Markdown 在信息密度、视觉清晰度和可分享性上已跟不上 AI 产物的丰富度,HTML 能同时承载排版、表格、SVG 等。
-
start值必须为整数,负数和小数会被忽略(如start="-2"或start="3.5"都退化为start="1") - IE 不支持
start属性(IE11 及更早版本会始终从 1 开始)
reversed 属性倒序编号,但仅适用于数字类型
reversed 让编号从大到小排,比如 <ol reversed>
<li>A</li>
<li>B</li>
</ol> 渲染为「2. A」、「1. B」:
但它只对默认的 decimal 类型生效;一旦设了 type="a" 或 type="i",reversed 就被忽略(Chrome/Firefox 行为一致)。另外,reversed 和 start 可共存,例如 <ol reversed start="10"></ol> 会从 10 开始递减。
type 属性切换编号样式,但 type="1" 是默认值不是必需的
type 支持 "1"(数字)、"a"(小写字母)、"A"(大写字母)、"i"(小写罗马数字)、"I"(大写罗马数字)。但要注意:
-
type="1"和不写type效果完全一样,没必要显式声明 -
type="i"在长列表中容易歧义(比如viii和iii视觉接近),可读性差 - Safari 对
type="I"的兼容性略弱于 Chrome/Firefox,建议测试真实设备 - 所有
type值都不影响语义,只是渲染表现;无障碍技术仍按顺序播报“列表第 X 项”
真正需要控制编号样式的场景,往往更适合用 CSS 的 list-style-type ——它支持更多值(如 lower-greek),且可继承、可响应式控制。










