value属性仅在的直接子元素中生效,对或嵌套/非直系无效;它强制设定当前项编号为指定整数,后续项无条件+1递增,不修复空档、不回溯,且仅接受纯整数字符串。

value属性只在里生效,
中写了也白写
value属性根本不会影响无序列表,浏览器直接忽略。它只对
- 内部的
li起作用,而且必须是- 的**直接子元素**。如果DOM结构被意外打断(比如中间插了
div、p,或嵌套了另一个ol),li就脱离了计数上下文,value立即失效。
常见错误现象:
-
<ul><li value="5">Item</li></ul>—— 完全没效果,仍显示圆点 -
<ol><div><li value="5">A</li></div></ol>—— 浏览器自动闭合ol,li变成孤立节点,value不参与计数 -
<ol> <li>One</li> <ol><li value="10">Ten</li></ol> </ol>—— 外层ol在遇到内层ol时被截断,内层li已不在原计数流中
value不是“偏移”,而是“硬切计数流”
value不是让编号“从5开始”,而是把当前项**强制设为5**,后续项无条件+1递增。它不修复空档、不回溯、不兼容跳号逻辑。一旦设了value="10",下一项就是11,哪怕你本意是“接上前面的第9项”。
典型行为对比:
-
<ol start="5"> <li>A</li> <li>B</li> </ol>→ 显示 “5. A” “6. B”,语义清晰,无障碍友好 -
<ol> <li value="5">A</li> <li>B</li> </ol>→ 显示 “5. A” “6. B”,但若前面加一个没设value的li,它会变成 “1. X”,A仍为 “5. A”,序号断裂不可逆 - 多个
value并存:<ol> <li>1</li> <li value="10">10</li> <li value="20">20</li> </ol>→ 实际显示 “1” “10” “20”,中间空档无法填补
value只接受整数,传错类型就退化成默认计数
value属性值必须是纯整数字符串,如"5"、"100"。任何非整数都会被浏览器静默忽略,回退到自动计数逻辑。
一款AI开发辅助工具,主要用于使用 OpenCLI 工具,可从各类网站及桌面应用中提取数据、下载媒体内容、控制外部 CLI 工具。支持 Bilibili、知乎、小红书、Twitter/X、Reddit、YouTube、Boss直聘、即刻、微博等 30+ 个平台,以及 Cursor、Codex、ChatGPT、Notion 等桌面应用。当用户需要:从社...,适合需要提升相关任务效率的用户。
以下写法全部无效:
-
value="5.0"(带小数点) -
value="five"(英文) -
value=""(空字符串) -
value="007"(前导零不影响,但仍是整数)
移动端或旧版 Safari 中,若li内含未包裹的块级内容(如直接写<p>xxx</p>而没用<span></span>),也可能导致value不渲染——这不是 bug,是规范行为:DOM 结构不合法,计数上下文丢失。
真正需要value的场景极少,多数时候该换CSS计数器
只有两种情况值得考虑value:
- 法律条文类文档中明确要求跳号(如“第20条”后必须是“第22条”,中间缺21)
- 跨多个独立
ol续接编号(前一个以<li value="7">结尾,下一个第一项需显示为8)
其他需求基本都该用 CSS 计数器:
- 想隐藏某项编号?
counter-increment: none - 要“Step-001”或“Appendix-B-03”格式?
counter-reset+::before+content - 嵌套列表、响应式布局、多语言环境?
value极易因 DOM 重排失效,CSS 计数器更稳定
最易被忽略的一点:value 的“破坏性”不在它做了什么,而在它**切断了语义连续性**——屏幕阅读器可能读出断裂序号,SEO 无法理解跳变逻辑,协作时别人很难维护。真要用,务必配上注释说明业务依据。
前端入门到VUE实战笔记:立即使用
在学习笔记中,你将探索 前端 的入门与实战技巧!










