HTML中ol标签设罗马数字应使用type="i"或type="I",type="lower-roman"等非法值会被忽略;需配合start属性指定起始序号;现代开发推荐用CSS的list-style-type实现,更稳定、可扩展且跨浏览器一致。

ol 标签改罗马数字,别用 type="lower-roman" —— 浏览器根本不认,会直接退回到 1、2、3。
用 type="i" 或 type="I" 才有效
HTML 原生只接受 "i"(小写)和 "I"(大写)这两个值表示罗马数字。其他写法如 "ii"、"roman"、"lower-roman" 全部非法,浏览器静默忽略,列表变成默认阿拉伯数字。
-
type="i"渲染为i.、ii.、iii.、iv.… -
type="I"渲染为I.、II.、III.、IV.… - 大小写敏感:
"i"≠"I",但"ii"无效,哪怕你只想显示两个字符 - 超大数(>3999)在旧版 Safari 或 IE 可能回退为阿拉伯数字,无报错、无提示
想从 iv 开始?必须加 start="4"
type="i" 永远从 i(即数字 1)开始编号。要跳过前几项、从第 4 项起标为 iv,得显式配 start 属性。
-
start的值始终是阿拉伯数字,哪怕type是罗马或字母 -
→ 渲染为- 这是第四项
iv. - 嵌套
不会自动继承父级start,子列表需单独设start才能对齐逻辑序号 - 漏掉
start是最常见疏忽,尤其章节标题想从 “v” 开始时,不写start="5"就永远是i.
为什么现在更推荐用 CSS 的 list-style-type
type 属性在 HTML5 中已被标记为 obsolete(废弃),所有现代浏览器虽仍支持,但 W3C 明确不鼓励使用。真正稳定、可扩展、跨浏览器一致的方案是 CSS。
生成可在 deepbi 沙箱 iframe 内运行或作为独立文件运行的交互式 HTML 页面,使用 `window.deepbi` JS SDK 实现数据查询、空间管理、文件浏览及用户操作。当用户提出以下需求时启用该能力: - 创建 KPI 仪表盘、数据表格、文件浏览器、成员列表、管理页面; - 明确要求“转成 dhtml”、“转译成 HTML”、“把 XX 页面转成……”、“控制台页面”、“管理后台”、“DeepBI 页面迁移”; - 提及位于 `apps/console/src/featur
-
list-style-type: lower-roman;和upper-roman;是标准写法,Firefox/Chrome/Safari 行为统一 - CSS 支持更多值(如
armenian、georgian),type只有 5 种硬编码值 - 动态切换时,
ol.style.listStyleType = "lower-roman"可靠;而ol.type = "lower-roman"会被静默忽略 - 不要混用:
—— Chrome 以type为准,Safari 可能以 CSS 为准,结果不可预测
JS 动态改罗马数字时最容易踩的坑
用 JavaScript 控制时,type 和 list-style-type 是两条完全独立的通路,一个管 DOM 语义,一个管视觉样式,不能互相替代或覆盖。
-
olElement.type = "i"有效;olElement.type = "lower-roman"无效,属性值不变 - 读取时
olElement.type返回"i",不是"lower-roman"—— JS 拿不到 CSS 渲染效果 - 修改
type不会重置计数器:如果已有start="3",再设type="I",结果仍是III.、IV.,不是I.、II. - 嵌套列表中,子
默认不继承父级编号类型,必须显式设置,否则容易出现外层罗马、内层数字的错乱
真正难的不是写对 type="i",而是当你要支持多级文档结构、动态加载内容、或兼容老版本屏幕阅读器时,type 属性的语义弱、扩展差、行为不可控——这时候,CSS 的 list-style-type 加上必要时的 counter-reset,才是更扎实的选择。
前端入门到VUE实战笔记:立即使用
在学习笔记中,你将探索 前端 的入门与实战技巧!










