最新下载
热门教程
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
ol标签start属性的用法_HTML有序列表序号控制
时间:2026-06-08 09:46:57 编辑:袖梨 来源:一聚教程网
start属性仅控制有序列表首个<li>的起始数字,后续自动递增;值必须为整数,负数和零合法,非数字字符串退化为1;与type、reversed配合时按序列位置映射,不改变DOM结构或语义顺序。
start 属性直接设整数,不是“跳过前几项”
它只控制第一个 <li> 显示的数字,后续自动 +1。比如 <ol start="7"><li>A</li><li>B</li></ol> 渲染出来是 “7. A” 和 “8. B”,不是从第 7 个元素开始取内容。
常见错误是写 <ol start="3"><li>第一项</li></ol> 后以为会显示 “3. 第一项”,结果确实如此——但误以为这能替代数据分页逻辑,其实它不删 DOM、不跳渲染、也不影响语义顺序。
- 值必须是整数:传
"5.2"会被截断为5;传"abc"退化为默认1(无报错) - 负数和零合法:
start="-2"→ 显示 “-2.”、“-1.”、“0.” - 服务端渲染(SSR)下照常生效,不依赖 JS
和 type 属性配合时,start 是“序列位置索引”
当用 type="a" 或 type="I" 时,start 不代表最终显示的字符,而是该字母/罗马数字序列里的第几个。例如:
<ol type="a" start="3"><li>c</li></ol> → 显示 “c.”(因为 a=1, b=2, c=3)
立即学习“前端免费学习笔记(深入)”;
<ol type="I" start="4"><li>IV</li></ol> → 显示 “IV.”(I=1, II=2, III=3, IV=4)
- 不能用
start="c"或start="IV"—— 浏览器只认整数 -
type="1"(默认)下,start="5"就真显示 “5.” - 想混用大小写字母或自定义前缀?得切 CSS
counter-reset,start不支持
和 reversed 一起用,起始值仍是“视觉上第一个”
reversed 只反转编号显示顺序,不影响 start 的含义。例如:
<ol start="5" reversed><li>A</li><li>B</li><li>C</li></ol> → 显示 “5.”、“4.”、“3.”
- DOM 顺序仍是 A→B→C,焦点顺序、屏幕阅读器读取顺序不变
- 不是“倒着排完再从 5 开始”,而是把原序列 [1,2,3] 映射成 [5,4,3]
- 如果只有两个
<li>,start="5" reversed就只显示 “5.”、“4.”,不会补出 “3.” - 别指望靠它实现“最新文章在前”的业务逻辑——数据本身得先反转
JS 动态设置要注意类型和可访问性
React/Vue 中直接传 number 类型最稳:<ol start={currentStart}>。JSX 里写 start="5" 也能工作,但字符串可能被意外截断(如 "5.8" → 5)。
用 DOM API 设置也一样:olElement.start = 12 或 olElement.setAttribute('start', '12') 都行。
- 值突变时(比如从
3突然变成100),序号会跳变,但 DOM 没重绘,部分屏幕阅读器可能缓存旧序号 - 不要在条件渲染的
<ol>上频繁切换start值,尤其当列表项数量不稳定时 -
value属性可用于单个<li>强制编号,但它会打断自动递增链,慎用
counter-reset、reversed、type 交叉作用时,行为边界容易模糊。最容易被忽略的是——它不改变 DOM 结构、不触发重排、也不保证辅助技术同步更新。
相关文章
- AI测臭有趣吗 AI测臭玩法说明 06-16
- 洛克王国世界武斗酷猫如何介绍 06-16
- 最强斗王开服时间是何时 06-16
- Notion AI企业版国内能用吗?3步检查网络与账号 06-16
- 哥特王朝:重制版高山堡垒隐藏房间位置分享 06-16
- 哥特王朝:重制版制作魔法卷轴学习方法介绍 06-16