ol需配合li才能显示序号;type属性在ol标签内设置可切换编号类型(如a/a/i/i),大小写敏感且ie兼容性差;start控制列表起始值,value指定单个li编号,均只接受整数;reversed仅视觉倒序,不改dom顺序,且仅支持type="1";原生属性与css计数器混用易冲突。

ol 标签本身不自动编号——必须配合 li 才能渲染出序号,漏写 li 或错嵌套会导致序号消失、内容错位甚至被浏览器忽略。
如何让 ol 正确显示阿拉伯数字以外的编号
默认是 type="1"(即 1, 2, 3),但实际开发中常需字母或罗马数字。关键点在于:type 属性必须写在 ol 开始标签内,不能放在 li 上;且大小写敏感。
-
type="A"→ A. B. C.(大写字母,适合等级分类) -
type="a"→ a. b. c.(小写字母,适合子步骤) -
type="I"→ Ⅰ. Ⅱ. Ⅲ.(大写罗马数字,适合章节标题) -
type="i"→ ⅰ. ⅱ. ⅲ.(小写罗马数字,适合附录项)
注意:type="I" 和 type="i" 在部分旧版 IE 中支持不佳,若需兼容,优先用 type="1" 或 CSS list-style-type 替代。
start 和 value 的区别与误用场景
start 控制整个列表起始编号(如 <ol start="3"></ol> → 3. 4. 5.),而 value 是单个 li 的强制编号(如 <li value="7">第七步</li>)。两者都只接受整数,传入字母或小数会失效。
- 常见错误:在
li上写value="a",结果序号变成 1(回退到默认) - 典型用途:
start用于接续上一段ol;value用于跳过中间步骤(如“第1步→第3步”,中间第2步被省略) - 风险提示:混用
start和多个value容易导致编号逻辑断裂,调试困难
反转编号和语义陷阱
reversed 属性能让 ol 倒序编号(如 <ol reversed>
<li>最新</li>
<li>上一期</li>
</ol> 渲染为 2. 最新 / 1. 上一期)。但它仅改变视觉序号,不改变 DOM 顺序或可访问性顺序。
- 屏幕阅读器仍按 DOM 顺序朗读,可能导致“先读 2. 最新,再读 1. 上一期”,语义混乱
- 真正需要倒序语义时,应手动调整
li顺序 + 使用start,而非依赖reversed -
reversed不支持type="A"等非数字类型,仅对type="1"有效
最容易被忽略的是:所有这些属性(type、start、reversed、value)都不影响 CSS 的 counter-reset / counter-increment 行为——如果同时用原生属性和 CSS 计数器,编号可能冲突。真要精细控制,建议统一用 CSS 实现,放弃原生属性。
前端入门到VUE实战笔记:立即使用
在学习笔记中,你将探索 前端 的入门与实战技巧!











