多音字必须人工指定拼音,ruby仅负责呈现不分析语境;需逐字标注、用Unicode声调符、确保UTF-8编码与支持字体;一字一ruby保证对齐;rp标签提供旧浏览器fallback。

多音字必须人工指定拼音,ruby 不会自动判断语境
浏览器的 ruby 标签只负责呈现,不参与语义分析。它不会读上下文,也不会调用分词模型——“长”在“长度”里是 cháng,在“长大”里是 zhǎng,这个决定必须由你手动写进 <rt></rt> 里。
常见错误是直接丢一整段文字进去,指望自动出拼音,结果要么全错,要么漏标。比如:<ruby>长大<rt>zhǎng dà</rt></ruby> 是对的;但写成 <ruby>长大<rt>cháng dà</rt></ruby> 就违背语义,工具不会帮你纠错。
- 多音字标注前,先通读原文,确认每个字在此处的实际读音
- 避免依赖“自动拼音库”直接塞进
rt,除非你已用pinyin-pro等库预处理并人工核验过 - 轻声字(如“妈妈”的第二个“妈”)要写成
mā ma,不能加调号;儿化音(如“花儿”)统一写作huār,不是huā ér
声调符号要用 Unicode 字符,别用数字后缀
想让拼音带正确声调,得用 Unicode 声调符(如 ā、á、ǎ、à),而不是写成 zhang1 或 chang2。后者在 ruby 中会被原样显示,不会渲染成上标声调。
输入方式取决于你的编辑环境:搜狗/讯飞输入法可调出软键盘选声调字母;VS Code 可装拼音插件;Mac 用户可用「字符检视器」搜索“a with macron”快速插入。
立即学习“前端免费学习笔记(深入)”;
生成可在 deepbi 沙箱 iframe 内运行或作为独立文件运行的交互式 HTML 页面,使用 `window.deepbi` JS SDK 实现数据查询、空间管理、文件浏览及用户操作。当用户提出以下需求时启用该能力: - 创建 KPI 仪表盘、数据表格、文件浏览器、成员列表、管理页面; - 明确要求“转成 dhtml”、“转译成 HTML”、“把 XX 页面转成……”、“控制台页面”、“管理后台”、“DeepBI 页面迁移”; - 提及位于 `apps/console/src/featur
- 确保网页
里有<meta charset="UTF-8">,否则声调符号可能乱码 - 字体要支持 Unicode 声调区(如 Noto Sans CJK、Microsoft YaHei、PingFang SC),不要用 Courier New 这类无中文支持的字体
- 别混用全角空格或中文标点进拼音字符串,例如
nǐ ?会导致排版错位
一字一 ruby 是唯一可靠对齐方式
把整词包一层 ruby(如 <ruby>中华人民共和国<rt>Zhōnghuá Rénmín Gònghéguó</rt></ruby>)看似省事,但拼音和汉字无法逐字对齐,尤其在换行、缩放或小字号下极易错位。
真正稳定的做法是每个汉字单独套 ruby:<ruby>中<rt>Zhōng</rt></ruby><ruby>华<rt>huá</rt></ruby><ruby>人<rt>rén</rt></ruby>…。虽然代码量翻倍,但浏览器能精确控制每个拼音的位置。
- 分词要按语义单位切,不是机械按字——“中华人民共和国”应拆为“中华/人民/共和国”,每词内部再逐字处理
- 避免在
ruby内部加<br>或display: block,这会破坏默认的 ruby 对齐逻辑 - 如需微调拼音字号,用
ruby rt { font-size: 0.65em; },别碰ruby自身的宽高或 margin
rp 标签不是摆设,旧环境 fallback 很关键
如果你的页面还需兼容 IE9 或老安卓 WebView,<rp></rp> 就不是可选项。没它的话,这些浏览器会把 <rt></rt> 当普通文本直接显示在汉字后面,变成“汉hàn”,完全不可读。
标准写法是成对使用:<ruby>汉<rp>(</rp><rt>hàn</rt><rp>)</rp></ruby>。现代浏览器会隐藏 rp 内容,只显示拼音;老浏览器则退化为“汉(hàn)”,至少保住了可读性。
- 漏掉
rp在新环境看不出问题,但一旦用户用旧设备打开,就是硬伤 -
rp必须紧邻rt,顺序不能错:必须是<rp>…</rp><rt>…</rt><rp>…</rp> - 不要给
rp加样式,它的唯一作用就是提供括号 fallback


















