使用是最稳妥且语义准确的古籍异读标注方式,浏览器原生支持,利于OCR、PDF导出及机器读取;title和CSS模拟存在触屏与无障碍缺陷,span模拟则丢失语义;需按上下文分组标注多音字,中应引用权威训诂记音。

直接用 <ruby></ruby> + <rt></rt> 是最稳妥、语义最准确的做法,浏览器原生支持,古籍 OCR 或导出 PDF 时也容易保留结构。
为什么不用 title 或纯 CSS 模拟
鼠标悬停触发的 title 属性在触屏设备上不可靠,且无法被读屏软件稳定识别;用 span 套样式模拟注音(比如小号字叠在右上)会丢失语义,导出为 EPUB 或打印时极易错位或丢失。古籍异读涉及训诂依据,必须可定位、可检索、可机器读取——<ruby></ruby> 是 HTML5 明确定义用于「汉字注音/注释」的语义标签,<rt></rt> 就是专为标注内容设计的子元素。
<ruby></ruby> 标注多音字的写法要点
古籍中一个字常有多个异读(如「异」可读 yì / qí / chí),需按上下文选择对应读音,不能笼统堆砌:
生成可在 deepbi 沙箱 iframe 内运行或作为独立文件运行的交互式 HTML 页面,使用 `window.deepbi` JS SDK 实现数据查询、空间管理、文件浏览及用户操作。当用户提出以下需求时启用该能力: - 创建 KPI 仪表盘、数据表格、文件浏览器、成员列表、管理页面; - 明确要求“转成 dhtml”、“转译成 HTML”、“把 XX 页面转成……”、“控制台页面”、“管理后台”、“DeepBI 页面迁移”; - 提及位于 `apps/console/src/featur
- 每个异读音单独套一组
<ruby><rb>异</rb><rt>yì</rt></ruby>,不要在一个<ruby></ruby>里塞多个<rt></rt> - 若需同时呈现音义(如「异,音义同『異』」),把解释文字放在
<rt></rt>里,例如:<ruby><rb>异</rb><rt>yì,同『異』</rt></ruby> - 避免嵌套
<ruby></ruby>,否则部分旧版 Safari 会渲染异常;如遇「异」字本身是注释对象又带注音,改用<span></span>包裹再加<ruby></ruby> - 注意
<rb></rb>不是必需标签,但显式写出能提升可维护性,尤其当<rb></rb>内容含空格或标点时
兼容性与古籍场景下的实际限制
IE 完全不支持 <ruby></ruby>,但 IE 已于 2026 年 6 月彻底终止支持;当前主流浏览器(Chrome/Firefox/Safari/Edge)对 <ruby></ruby> 的渲染一致,且支持 CSS ruby-position 微调位置。真正要注意的是:
立即学习“前端免费学习笔记(深入)”;
- 汉典古籍子站(gj.zdic.net)等平台导出 HTML 时,若原始 XML 使用了 TEI 标准的
<choice><orig><reg></reg></orig></choice>结构,转换脚本需明确映射到<ruby></ruby>,而非简单丢弃注音信息 - 用 Pandoc 从 Markdown 转 HTML 时,默认不生成
<ruby></ruby>,需启用--html-q-tags并配合自定义过滤器 - 若需适配微信公众号或某些古籍 APP 的 WebView(基于老旧 Chromium 内核),建议加一行 CSS:
ruby { display: inline-flex; } rt { font-size: 0.6em; }防止换行错乱
古籍异读不是单纯标拼音,而是承载训诂逻辑。写 <ruby></ruby> 时,<rt></rt> 里的内容最好直接来自《广韵》《集韵》或现代校注本的原始记音,而不是自己拼写——错一个声调符号(如「异」误标为 yī),整条注释就失去文献依据。


















