ol 的 start 属性控制起始数字,仅影响首项显示值;嵌套选项需独立 ol 并设 type;CSS 计数器须配 counter-reset 确保独立编号;移动端需增大触控区域。

ol 默认从 1 开始,但考试题常要从指定数字起始
考试卷里题号经常不是从 1 开始(比如“第二部分:第 5 题”),ol 支持用 start 属性控制起始序号。不设 start 就默认为 1,设了就按整数跳转,浏览器会自动计算后续序号。
常见错误是写成 start="5" 却在第 5 题前插了额外的 li(比如题干说明),导致序号错位——start 只影响第一个 li 的显示值,不影响实际计数逻辑。
-
start必须是整数,不支持小数或字母(如a、i) - 若需罗马数字或字母编号,改用
type属性(如type="A"或type="i"),但start仍只接受数字 - 例如:第 17 题开始的单选题块,直接写
<ol start="17">,后面每个li对应一题即可
题干和选项嵌套时,ol 里套 ol 容易序号错乱
考试题常见“题干 + 多个选项”,选项本身也要编号(A/B/C/D)。这时不能在主 ol 里直接写选项,否则主序号(如“17.”)会和选项序号(如“A.”)混在一起。正确做法是题干用一个 li,选项另起一个 ol。
容易踩的坑是忘记给内层 ol 设 type,结果默认还是阿拉伯数字,变成“17. … 1. A 2. B”,而不是“17. … A. B. C. D.”。
立即学习“前端免费学习笔记(深入)”;
- 内层
ol加type="A"或type="a",区分大小写 - 若选项需要括号格式(如“(A)”),
type不支持,得用 CSS 的list-style-type或手动写文本 - 避免在
li里再套ol后又漏掉闭合标签,会导致后续所有序号偏移
用 CSS 覆盖 ol 默认样式时,counter-reset 容易被忽略
如果考试卷要求题号加粗、缩进统一、或序号后用顿号而非点号(如“1、”),仅靠 ol li::before 重置内容容易出问题——浏览器内置计数器(counter-increment)仍按默认规则走,手动写 content: "1、" 会硬编码,无法自动递增。
真正可控的方式是用 CSS 计数器,但必须配 counter-reset 初始化,否则多个 ol 块之间序号会连贯(比如第一部分结束在 10,第二部分自动从 11 开始,而非重新从 1)。
- 给每个题块的
ol加style="counter-reset: item;",确保独立计数 - 用
li::before { content: counter(item) "、"; counter-increment: item; }实现顿号分隔 - 若用
reversed属性倒序(如倒扣分题),CSS 计数器不自动适配,得手算初始值
移动端试卷里 ol 缩放和 touch 目标太小
考试系统常需在 iPad 或手机上作答,ol 默认的序号文字小、行高紧,手指点选区域不足,尤其选项 li 紧挨着时容易误触。
这不是语义问题,而是交互缺陷:HTML 结构没错,但没考虑触控反馈。单纯放大字体可能撑破容器,更稳妥的是用 padding 和 min-height 控制可点区域。
- 给
ol li设min-height: 44px(iOS 推荐最小触控尺寸) - 用
padding-left替代margin-left避免序号悬空 - 禁用
-webkit-tap-highlight-color消除点击灰影,避免干扰题号视觉
题号样式越简单,兼容性越稳;花哨的伪元素序号在旧版微信 WebView 里可能不渲染。



















