list-style-type 是 css 属性,用于控制有序列表()的编号类型,如 decimal、lower-alpha、upper-roman 等;html 的 type 属性已废弃,应避免使用;推荐通过 class 切换样式以确保兼容性与可维护性。

list-style-type 属性控制编号类型,不是 _TYPE
HTML 中没有 _TYPE 这个属性,你可能混淆了 HTML 属性和 CSS 属性。列表编号样式由 CSS 的 list-style-type 控制,作用于 <ol></ol>(有序列表)或 <li>(需配合 counter-reset 等才可单独设)。
直接在 上用 list-style-type 切换数字/字母
最常用、最可靠的方式是给 <ol></ol> 设置 list-style-type,浏览器自动处理序号生成逻辑:
-
decimal→ 1, 2, 3(默认) -
lower-alpha→ a, b, c -
upper-alpha→ A, B, C -
lower-roman→ i, ii, iii -
upper-roman→ I, II, III
示例:
<ol style="list-style-type: lower-alpha;"> <li>第一项</li> <li>第二项</li> </ol>
不要用 type 属性硬编码(已废弃且不可靠)
HTML4 曾支持 <ol type="a"></ol>,但该属性在 HTML5 中已过时(obsolete),现代浏览器虽大多仍兼容,但存在明显问题:
- 不支持
lower-roman等复杂类型(<ol type="i"></ol>行为不一致,Safari 和 Chrome 渲染不同) - 无法与 CSS 伪类(如
::marker)配合做精细样式控制 - 若同时写
type="a"和style="list-style-type: upper-alpha",CSS 会覆盖,但语义混乱
需要动态切换?用 class + CSS 更稳妥
运行时切换编号类型,推荐通过 JS 切换 <ol></ol> 的 class,再由 CSS 定义对应样式:
<ol class="alpha-list">
<li>条目</li>
</ol><style>
.alpha-list { list-style-type: lower-alpha; }
.decimal-list { list-style-type: decimal; }
.roman-list { list-style-type: lower-roman; }
</style><script>
const ol = document.querySelector('ol');
ol.classList.remove('alpha-list', 'roman-list');
ol.classList.add('decimal-list');
</script>
注意:避免直接操作 style.listStyleType,容易被内联样式污染;class 方式更易维护、可复用、支持 :hover 等状态样式。
真正容易被忽略的是:嵌套列表中,子 <ol></ol> 默认继承父级的 list-style-type,除非显式重置——这点在多层文档结构里常导致字母变数字或罗马数字错乱。











