type="A"仅显示大写字母A、B、C…,失效主因是子ol未嵌套在父li内、CSS覆盖或大小写错误;支持start="4"从D开始;嵌套须严格置于li中才能延续层级编号。

ol 标签的 type="A" 只做一件事:让列表项前面显示大写字母(A、B、C…),它不加点、不加括号、不带空格,就是纯字母本身。
为什么 type="A" 有时没生效?
常见失效原因不是写错,而是结构破坏:
- 子
ol没嵌在父级li里,比如写成<ol type="A"><li>A</li></ol> <ol><li>1</li></ol>—— 第二个ol是全新列表,跟上层字母完全无关 - 混用了 CSS 的
list-style-type,而浏览器优先按 CSS 渲染,type属性会被忽略 - 写了
type="a"却期望大写,或大小写拼错("a"和"A"是两个不同值)
type="A" 能和 start 一起用吗?
能,而且很常用。比如想从 D 开始编号:
<ol type="A" start="4"> <li>第四项</li> <li>第五项</li> </ol>
渲染结果是:
D. 第四项
E. 第五项
立即学习“前端免费学习笔记(深入)”;
注意:start 的值是数字(对应字母顺序位置),不是字母本身;start="1" = A,start="26" = Z,超出后继续(AA、AB… 不支持,会回绕或截断,行为不一致)
嵌套时怎么保持 A → 1 → a 的层级关系?
必须保证子列表严格嵌套在父 li 内部,否则序号重置为默认 1:
<ol type="A">
<li>第一大类
<ol type="1">
<li>第一小类</li>
<li>第二小类</li>
</ol>
</li>
<li>第二大类</li>
</ol>
这样才可靠输出:
A. 第一大类
1. 第一小类
2. 第二小类
B. 第二大类
如果把内层 ol 拉到外层同级,浏览器就当它是另一个独立列表,序号从 1 重新开始
真正难控制的不是 type="A" 本身,而是嵌套层级中「谁继承谁」——HTML 不自动推导上下文,只认 DOM 结构是否嵌套在 li 里。一旦漏掉这层包裹,序号就断了。



















