start属性只接受整数,小数或字符串会静默失效;其值决定编号起始序号,显示字符由type决定,需配合使用,且reversed不改变DOM顺序。

start属性只接受整数,小数或字符串会静默失效
浏览器对 start 的值做严格类型处理:传 "5.8" 会被截断为 5,传 "abc" 或空字符串则退化为默认的 1,不报错但效果丢失。这不是 bug,是 HTML 规范行为。
常见误写包括:start="c"(想从字母 c 开始)、start="III"(想从罗马数字 III 开始)——这些都无效。真正该写的是 start="3" 配合 type="a",或 start="3" 配合 type="I"。
-
start="-2"合法,渲染为 “-2.”、“-1.”、“0.” -
start="0"合法,显示 “0.”、“1.”、“2.” -
start="null"或服务端漏传值 → 等价于没写start,回退到1
type 和 start 必须配合使用,否则语义错位
start 本身不决定“显示什么”,只决定“从第几个开始数”;最终显示字符由 type 查表映射。比如 type="a" 下,start="1" 是 “a.”,start="3" 是 “c.”,不是 “3.”。
容易踩的坑:
- 写了
type="A" start="0",结果第一项是 “A.” 而非 “0.”(因为start="0"在字母序列里被当作第 0 个,浏览器按规则兜底为第 1 个) - 用 CSS 强制覆盖
list-style-type: lower-alpha后,type属性被忽略,start仍参与计数但样式不受控 -
type值建议统一用小写("a"、"i"),部分旧校验工具对大写敏感
reversed 和 start 共存时,“起始值”指视觉第一个编号
reversed 不改变 DOM 顺序,只反转编号显示逻辑。当与 start 同时出现,例如 ,渲染结果是 “5. A”、“4. B”,不是 “5. B”、“4. A”。
这意味着:
- 焦点顺序、屏幕阅读器播报仍是 A→B,和 DOM 一致
- 新增
后,编号是 “3. C”,不会重置或跳变- C
- 别指望靠
reversed+start实现“最新内容在前”的业务逻辑——数据本身得先反转
value 属性慎用,它只覆盖单个 li 并中断自动递增
value 是 的属性,不是 的。它的作用很窄:强制当前项显示指定数字,后续项在此基础上 +1 继续递增。
典型误用场景:
- 在
里给第一个→ 直接变成 “1.”、“2.”,start彻底失效 - 列表编号乱了就挨个加
value打补丁 → 应先检查start是否漏设、嵌套是否闭合、DOM 是否被 JS 意外修改 - 用
value对齐右对齐等样式需求 → 这该用 CSS 的list-style-position或padding
真正需要 value 的情况极少,比如法律条文里“第十二条”后直接接“第十七条”,中间跳号。
前端入门到VUE实战笔记:立即使用
在学习笔记中,你将探索 前端 的入门与实战技巧!











