最可靠方案是直接在或上设置dir="rtl",而非仅用css的direction: rtl;竖排中文必须用writing-mode: vertical-rl配合text-orientation: mixed,并避免unicode-bidi: bidi-override与竖排混用。

表格单元格里文字从右向左显示,用 dir 属性最可靠
只靠 direction: rtl 很容易出问题:光标乱跳、数字顺序反、括号翻转、复制粘贴错位。真正起作用的是 HTML 的 dir 属性——它参与 Unicode 双向算法,影响输入、选中、剪贴板行为,不是单纯“视觉对齐”。
正确写法是直接在 <td> 或 <code><th> 上加 <code>dir="rtl":
| مرحبا | Hello |
-
dir必须加在<td> 或 <code><th> 上,不能只加在 <code><table> 或 <code><tr> 上——后者不继承方向语义 <li>表单类单元格(如含 <code><input>)必须单独设dir,否则输入框内光标仍按文档默认方向走 - 避免用
dir="auto":阿拉伯数字开头的单元格(如"123٤٥٦")会被误判为 LTR
表格里中文竖排,writing-mode: vertical-rl 是唯一合规方案
别用 transform: rotate(90deg) 或每个字套 <span></span>——它们破坏文本选择、屏幕阅读器识别和打印逻辑。竖排中文必须用 writing-mode。
关键组合:
<td style="writing-mode: vertical-rl; text-orientation: mixed;">你好世界</td>
-
writing-mode: vertical-rl表示文字从上到下,行从右向左(符合传统中文排版) -
text-orientation: mixed让汉字直立、英文字母和数字自动顺时针转 90°;若内容全是中文,可省略此属性 - 必须设置明确宽度(如
width: 2em),否则浏览器无法计算换行位置,文字会挤成单列溢出 - 父容器不能是
display: inline或用了float,这些会绕过布局引擎导致writing-mode失效
混合方向单元格里数字和标点错乱,unicode-bidi: bidi-override 是双刃剑
当单元格同时含阿拉伯文、英文、数字和括号(如 "الرقم ١٢٣ (ID: ABC)"),仅设 dir="rtl" 仍可能让括号位置颠倒或数字分组异常。这时需显式干预双向算法。
如果你了解HTML,CSS和JavaScript,您已经拥有所需的工具开发Android应用程序。本动手本书展示了如何使用这些开源web标准设计和建造,可适应任何Android设备的应用程序 - 无需使用Java。您将学习如何创建一个在您选择的平台的Android友好的网络应用程序,然后转换与自由PhoneGap框架到一个原生的Android应用程序。了解为什么设备无关的移动应用是未来的潮流,并开始构建应用程序,提供更
推荐做法是加 unicode-bidi: isolate(安全)或 unicode-bidi: bidi-override(强干预):
<td dir="rtl" style="unicode-bidi: isolate;">الرقم ١٢٣ (ID: ABC)</td>
-
unicode-bidi: isolate隔离该单元格与周围文本的双向逻辑,适合大多数混合场景 -
unicode-bidi: bidi-override强制按direction指定方向逐字符排列——但会导致中文括号「(」变成「)」,慎用 - 绝对不要在已设
writing-mode: vertical-rl的单元格里再加unicode-bidi: bidi-override,它会破坏竖排标点位置 - 优先用
dir+unicode-bidi: isolate,而不是纯 CSS 的direction+bidi-override
表格方向设置失效的三个高频原因
写了 dir="rtl" 或 writing-mode 却没效果?大概率卡在这三处:
- CSS 优先级被覆盖:检查是否被更高权重的选择器(如
table td)重置了direction或writing-mode - 字体缺失:某些中文字体不支持
text-orientation: mixed,导致竖排字母歪斜或不转——换用"PingFang SC", "Microsoft YaHei"等现代字体 - 表格结构干扰:
<td> 套了 <code><div> 且该 <code><div> 设了 <code>direction: ltr,会覆盖<td> 的 <code>dir——方向声明要落在最内层文本容器上竖排和 RTL 方向不是纯视觉调整,它们牵扯到底层文本流逻辑。写完记得用键盘方向键测试光标移动、用鼠标拖选文字看是否连贯、复制粘贴到记事本验证原始顺序——这些才是真实生效的信号。










