从右到左的文本似乎显示顺序不对



我有以下文字:

$3.00 x 2 = $6.00

当我direction: rtl;应用于页面正文时,此文本显示为

x 2 = $6.00 $3.00

谁能解释为什么它以这种方式显示?

您的问题的完整答案必须解释Unicode双向算法的工作原理,而且它非常复杂。

根据我有限的理解,该算法检测到"x 2 = $6.00"和"$3.00"是两个独立的文本"运行",应该按从左到右的顺序显示。由于整个块是从右到左的,您会看到两个运行按 RTL 顺序运行。

不清楚你的问题是试图解决问题,还是你只是好奇。但是,如果您需要完全显示公式 LTR,但在其他一些 RTL 文本的中间,您可以使用 Unicode 控制字符。

例如,此 RTL 块中的文本会将两个标记之间的文本显示为连续的 LTR 文本。

<body dir="RTL">
&#x202A;$3.00 x 2 = $6.00&#x202C;
</body>

在大多数情况下(如果可以的话(更简单的是使用 HTML 元素隔离 LTR 文本,例如:

<body dir="RTL">
<span dir="LTR">$3.00 x 2 = $6.00</span>
</body>

由于我无法阅读阿拉伯语或希伯来语,因此我无法告诉您嵌入 RTL 脚本时示例文本应如何显示。但是,您确实可以控制渲染。

最新更新