ol标签起始数字由start属性控制,value仅影响当前li,type和CSS list-style-type控制样式但互不继承,reversed仅视觉倒序且不改变语义。
ol标签默认从1开始,但可以改
html的<ol></ol>不是固定从1数起,它靠start属性控制起始数字,比如start="5"会让第一个<li>显示为“5.”。这个值可以是任意整数,正负都行,但不支持小数或字母——想用a、b、c得换type属性。
常见错误是以为改了value属性就能影响后续序号,其实value只作用于当前<li>,之后的项仍按默认逻辑递增(除非再设value)。比如:
<ol> <li value="10">第一项</li> <li>第二项</li> <li value="20">第三项</li> </ol>
渲染结果是:10. 第一项 → 11. 第二项 → 20. 第三项。
type属性控制编号样式,但有兼容限制
type决定用数字、字母还是罗马数字,可选值包括"1"、"a"、"A"、"i"、"I"。注意:type只在<ol></ol>上生效,对嵌套的<ol></ol>不继承;而且IE11及更早版本对小写字母"a"支持不稳定,容易回退成数字。
- 想让子列表用不同编号风格,必须显式写
<ol type="a"></ol>,不能依赖父级 -
type="i"是小写罗马数字(i, ii, iii),type="I"才是大写(I, II, III) - 现代浏览器支持
type,但CSS的list-style-type更灵活,也更推荐用于样式控制
reversed属性翻转顺序,但不改变语义
reversed会让编号倒着来:比如<ol reversed>
<li>A</li>
<li>B</li>
</ol>显示为“2. A”“1. B”。但它只是视觉倒序,DOM结构和阅读顺序不变,对屏幕阅读器也不改变播报逻辑。
真正需要语义化倒序(比如倒计时步骤),应该手动调整<li>顺序,而不是依赖reversed。否则可能造成可访问性问题。
-
reversed是布尔属性,写reversed或reversed="reversed"效果一样 - 和
start一起用时,起始值仍是第一个<li>显示的数字,比如<ol start="5" reversed></ol>会从5开始往下数 - 不要指望它能自动适配动态插入的
<li>——新增项不会重算序号
CSS list-style-type比HTML type更可靠
用CSS控制编号类型比HTML的type属性更可控,尤其在响应式或主题切换场景下。比如ol { list-style-type: lower-alpha; }能统一所有<ol></ol>为小写字母,且支持更多值(如lower-roman、upper-greek)。
但要注意:CSS设置后,HTML的start和reversed依然有效,它们影响的是计数逻辑,而list-style-type只管怎么显示这个数。
- 若同时用了HTML
type和 CSSlist-style-type,后者会覆盖前者 - 某些旧版Safari对
list-style-type: upper-greek等值支持不全,建议降级到lower-alpha保底 - 用CSS还能配合
counter-reset/counter-increment做复杂编号,比如“第1章-1节”这种嵌套格式
前端入门到VUE实战笔记:立即使用
在学习笔记中,你将探索 前端 的入门与实战技巧!











