ol的start属性是唯一原生控制起始编号的整数型属性,值如"5"有效,"5.2"或"c"会被静默转为5或退至1;需配合type决定显示样式(如type="a"时start="3"显示"c."),reversed仅倒序视觉编号且不改变dom顺序,value仅用于极个别单项目覆盖,非起始编号正解。

ol 的核心配置就三件事:用 start 控制从几开始数,用 type 决定显示成什么样子,用 reversed 切换正序倒序。别碰 value,它只该用于极个别覆盖单个项的场景,不是起始编号的正经解法。
ol 的 start 属性怎么设才有效
start 是唯一真正控制“从哪个数字开始编号”的原生属性,但它只认整数——start="5" 行,start="5.2" 或 start="c" 都会被浏览器静默转成 5 或直接退回到 1。
-
start值是阿拉伯数字,和type无关:设type="a"+start="3",第一项显示为c(字母表第 3 位),不是 “从字母 c 开始” - 负数和零合法:
start="-1"在type="1"下会显示-1.、0.、1.;但type="A"下可能空白或 fallback 到数字 - IE11 及更早版本不支持
start,如果必须兼容,得用 CSScounter-reset - 动态 JS 修改
ol.start = 100后,序号会跳变,但屏幕阅读器可能仍按 DOM 位置播报“第 1 项”,语义断裂
type 属性还能用吗?和 CSS 有什么区别
type 在 HTML5 中未被废弃,但规范明确建议优先用 CSS list-style-type。两者共存时,CSS 会覆盖 type;单独用 type 依然可靠,只是可选值少(仅 1、a、A、i、I)。
-
type="1"是默认值,不用写;type="a"和type="A"不区分大小写,但统一小写更稳妥 -
type="i"对应小写罗马数字(i, ii, iii…),start="4"时显示为iv,不是“第 4 个小写罗马数字”的直觉映射 - CSS
list-style-type: lower-greek这类扩展值,type属性完全不支持 - 嵌套列表中,每层
ol的type独立生效,外层type="1"不影响内层默认从1开始
reversed 属性的生效条件和陷阱
reversed 只对 type="1"(即默认数字类型)真正生效;一旦设了 type="a" 或 type="i",几乎所有现代浏览器都会忽略 reversed。
-
reversed和start可共存:<ol start="10" reversed></ol>渲染为10.、9.、8.… - 它不改变 DOM 顺序,只是视觉倒排;屏幕阅读器仍按
<li>出现顺序播报“第 1 项、第 2 项” - 想让字母倒序(z, y, x…)?
reversed不行,只能用 CSScounter或 JS 重排 DOM - 嵌套时,
reversed只作用于当前ol,子ol默认仍是正序,除非也加reversed
为什么不要用 li 的 value 属性设起始编号
value 是 <li> 的局部属性,只覆盖当前项显示值,后续项仍按“前一项 + 1”递增,极易造成编号断层或逻辑混乱。
-
<ol> <li value="10">A</li> <li>B</li> <li value="20">C</li> </ol>渲染为10. A→11. B→20. C,不是连续的 10、11、12 -
value对嵌套ol内的li无效,只作用于同级 - 可访问性工具通常忽略
value,仍按 DOM 位置播报序号,导致视觉与语音不一致 - 真要跨多个
ol连续编号(如“3.1”、“3.2”),必须用 CSScounter-reset+counter-increment,start和value都撑不住
前端入门到VUE实战笔记:立即使用
在学习笔记中,你将探索 前端 的入门与实战技巧!











