value属性仅对ol元素的直接子li元素生效,且值必须为纯整数字符串;若li非ol直接子元素、或value非整数,则失效,此时应优先使用start属性或CSS计数器。

value 属性不能在无序列表(<ul>)中生效,哪怕你把 <ul> 改成 <ol>,只要 <li> 不是 <ol> 的直接子元素,它就不起作用。
value 只对 <ol> 直接子 <li> 有效
- 浏览器只认
<ol><li value="5">...这种结构 - 如果你写的是
<ul><li value="5">...,浏览器完全忽略value,仍显示圆点 - 把
<ul>手动改成<ol>后,value才可能起效——但前提是:-
<li>确实是<ol>的第一个层级子节点 - 中间没插
<div>、<p>、<section>等打断 DOM 树的元素 - 没嵌套其他
<ol>或<ul>导致外层被自动闭合
-
常见失效现场:
-
<ol><div><li value="10">A</div></ol>→ 浏览器先闭合<ol>,<li>变成孤立节点,value失效 -
<ol><li>1</li><li value="10">2</li></ol>→ 第二项显示为 “10.”,第三项(如果存在)会是 “11.”,不是 “2.”,且前面没有 “2–9.” 对应的<li>
value 不是“从某数开始”,而是“硬设当前项为某数”
- 它不修复空档,也不回溯计数逻辑
-
<ol><li value="10">Ten</li><li>Eleven</li></ol>→ 显示 “10. Ten” “11. Eleven” - 但如果你加一个没设
value的前置项:<ol><li>One</li><li value="10">Ten</li></ol>→ 显示 “1. One” “10. Ten”,中间缺 2–9,且无法补
这跟 start 属性完全不同:<ol start="10"><li>Ten</li><li>Eleven</li></ol> 才是让整个列表从 10 开始、语义连贯、无障碍友好的做法。
使用 PptxGenJS 和 Python 解析,将结构化的 HTML/CSS 幻灯片内容转换为原生、可编辑的 PowerPoint(.pptx)演示文稿。
value 值必须是纯整数字符串
以下写法全部无效,浏览器静默退回到默认计数:
立即学习“前端免费学习笔记(深入)”;
-
value="5.0"(含小数点) -
value="five"(非数字) -
value=""(空字符串) -
value="007"(前导零不影响,仍是合法整数,但容易误判)
传错类型不会报错,也不会警告,只是失效——这是最容易被忽略的调试盲区。
真正需要跳号(比如法律条文“第20条”后接“第22条”)或跨多个独立 <ol> 续编号时,value 才有存在意义。其余情况,优先用 start 或 CSS 计数器。
DOM 结构一旦出一点偏差,value 就彻底失联,而且这种失效很难靠肉眼发现。


















