如何在HTML里使用ruby标签实现竖排注音

酷瑶酱_4039

酷瑶酱_4039

2026-08-22

270人浏览

原创

ruby竖排需用writing-mode: vertical-rl配合标准结构字音,省略rb或仅设rt样式会导致错位;safari 16.4前支持差,需降级处理。

如何在html里使用ruby标签实现竖排注音

ruby 标签默认不支持竖排,必须配合 writing-mode

HTML 的 ruby 本身只定义语义(注音关系),不控制排版方向。想竖排,得靠 CSS 的 writing-mode 切换文字流向。常见错误是只写 rubyrt,结果注音还是横在字上方。

关键点:竖排时,writing-mode: vertical-rl 让文字从上到下、从右到左排列,此时 rb(基文)和 rt(注音)会自动按垂直方向对齐——但前提是结构正确。

实操建议:

  • 必须用标准结构:<ruby><rb>漢</rb><rt>かん</rt></ruby>,不能省略 rb 标签(部分浏览器对隐式基文支持不稳定)
  • ruby 元素设 style="writing-mode: vertical-rl;",不要只设在 rt 上——否则基文和注音流向不一致,会错位
  • 注意字体支持:中文字体通常没问题,但日文假名或韩文注音若字体缺失,可能 fallback 成横排方块字,建议显式指定 font-family

vertical-rl 下 rt 位置偏移,需用 text-combine-upright 或 line-height 微调

竖排时,rt 默认比 rb 稍窄,且浏览器渲染中常出现上下不对齐、挤在一起或间距过大。这不是 bug,而是 rt 的行高和字宽在垂直流中计算方式不同。

常见现象:rt 文字被压缩成一列、看不见,或浮在基文字右侧而非正上方(实际是“正右方”,因 vertical-rl 中“上方”对应逻辑上的“左方”)。

解决方法:

  • 优先尝试 text-combine-upright: all(仅适用于单个 rt 包含 1–2 个字符,如「かん」会强制并排显示为紧凑竖列)
  • 更通用的做法:给 rtline-height: 1 + font-size: 0.7em,避免行高撑开导致错位
  • 若仍偏移,可对 rubydisplay: inline-block 后用 vertical-align: middle 对齐父容器基线

兼容性陷阱:Safari 对 ruby + vertical-rl 支持滞后

Safari 16.4 之前,rubywriting-mode: vertical-rl 下完全不渲染 rt,或把 rt 当普通内联文本处理——这是已知限制,不是你代码写错。

html-ppt-to-pdf
html-ppt-to-pdf

将使用 `

` 约定的 HTML 幻灯片转换为高保真、矢量文本 PDF(使用 Playwright + Chromium 原生 PDF 功能)。

下载

判断是否生效最简单的方法:打开 Safari 开发者工具,选中 rt 元素,看 computed styles 里 display 是否为 ruby-text;如果是 inline,说明未启用 ruby 渲染引擎。

临时应对方案:

  • 加降级样式:rt { display: inline; font-size: 0.6em; letter-spacing: 0.1em; },至少保证注音可见
  • 避免在 Safari 主要场景(如 iOS Web App)依赖纯 ruby 竖排,必要时改用绝对定位模拟(position: relative on rb, position: absolute on rt
  • 检查 Can I Use 数据:目前(2024)Chrome/Firefox/Edge 均已稳定支持,Safari 仅在 macOS 13.3+/iOS 16.4+ 完整支持

多音字或长注音时,rb 和 rt 必须严格一一对应

竖排 Ruby 容易忽略的细节:当一个汉字对应多个假名(如「行」读作「ぎょう」)、或需要标注词性符号(如「〜」、「・」)时,rbrt 的包裹粒度决定渲染结果。

错误写法:<ruby>行<rt>ぎょう</rt></ruby> —— 这里 rb 缺失,浏览器可能将「行」当作匿名 rb,但在 vertical-rl 下容易丢失语义绑定

正确做法:

  • 每个注音单元独立套 ruby<ruby><rb>行</rb><rt>ぎょう</rt></ruby>
  • 连词注音(如「日本語」注「にほんご」)必须整体包裹:<ruby><rb>日本語</rb><rt>にほんご</rt></ruby>,不可拆成三个单独 ruby,否则竖排后注音会分散在三列
  • 若需空格或标点参与注音(如「日本・中国」注「にほん・ちゅうごく」),标点应放在 rbrt 内对应位置,不能只放外面

竖排 Ruby 的真正难点不在写法,而在验证——它既依赖浏览器对 writing-mode 的底层实现,又受字体度量影响。哪怕结构全对,换一个系统字体就可能错位一像素。上线前务必在目标设备真机测试,别信桌面模拟器。

前端入门到VUE实战笔记:立即使用
在学习笔记中,你将探索 前端 的入门与实战技巧!

相关文章

HTML速学教程(入门课程)
HTML速学教程(入门课程)

HTML怎么学习?HTML怎么入门?HTML在哪学?HTML怎么学才快?不用担心,这里为大家提供了HTML速学教程(入门课程),有需要的小伙伴保存下载就能学习啦!

下载

本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

相关专题

更多
html版权符号
html版权符号

html版权符号是“©”,可以在html源文件中直接输入或者从word中复制粘贴过来,php中文网还为大家带来html的相关下载资源、相关课程以及相关文章等内容,供大家免费下载使用。

2023.06.14

4815

7

html在线编辑器
html在线编辑器

html在线编辑器是用于在线编辑的工具,编辑的内容是基于HTML的文档。它经常被应用于留言板留言、论坛发贴、Blog编写日志或等需要用户输入普通HTML的地方,是Web应用的常用模块之一。php中文网为大家带来了html在线编辑器的相关教程、以及相关文章等内容,供大家免费下载使用。

2023.06.21

2832

4

html网页制作
html网页制作

html网页制作是指使用超文本标记语言来设计和创建网页的过程,html是一种标记语言,它使用标记来描述文档结构和语义,并定义了网页中的各种元素和内容的呈现方式。本专题为大家提供html网页制作的相关的文章、下载、课程内容,供大家免费下载体验。

2023.07.31

2490

5

html空格
html空格

html空格是一种用于在网页中添加间隔和对齐文本的特殊字符,被用于在网页中插入额外的空间,以改变元素之间的排列和对齐方式。本专题为大家提供html空格的相关的文章、下载、课程内容,供大家免费下载体验。

2023.08.01

2519

5

html是什么
html是什么

HTML是一种标准标记语言,用于创建和呈现网页的结构和内容,是互联网发展的基石,为网页开发提供了丰富的功能和灵活性。本专题为大家提供html相关的各种文章、以及下载和课程。

2023.08.11

4519

6

html字体大小怎么设置
html字体大小怎么设置

在网页设计中,字体大小的选择是至关重要的。合理的字体大小不仅可以提升网页的可读性,还能够影响用户对网页整体布局的感知。php中文网将介绍一些常用的方法和技巧,帮助您在HTML中设置合适的字体大小。

2023.08.11

2461

3

html转txt
html转txt

html转txt的方法有使用文本编辑器、使用在线转换工具和使用Python编程。本专题为大家提供html转txt相关的文章、下载、课程内容,供大家免费下载体验。

2023.08.31

2249

3

html文本框代码怎么写
html文本框代码怎么写

html文本框代码:1、单行文本框【<input type="text" style="height:..;width:..;" />】;2、多行文本框【textarea style=";height:;"></textare】。

2023.09.01

2088

6

HTML嵌入CSS样式的方法
HTML嵌入CSS样式的方法

HTML嵌入CSS样式的方法有内联样式、内部样式表和外部样式表。本专题为大家提供CSS样式相关的文章、下载、课程内容,供大家免费下载体验。

2023.09.20

2028

5

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
GDB 17.2 官方文档集合
GDB 17.2 官方文档集合

共0课时 | 0人学习

Bootstrap 入门安装配置
Bootstrap 入门安装配置

共0课时 | 0人学习

38+ PhpStorm 提示和技巧
38+ PhpStorm 提示和技巧

共1课时 | 204人学习