从右到左的文本似乎显示顺序不正确
Right-to-left text seems to be displaying out of order
我有以下文字:
.00 x 2 = .00
当我将 direction: rtl;
应用到页面正文时,此文本显示为
x 2 = .00 .00
谁能解释一下为什么会这样显示?
您问题的完整答案必须解释 Unicode Bidirectional Algorithm 的工作原理,而且它非常复杂。
根据我有限的理解,该算法检测到 "x 2 = .00" 和“$3.00”是两个独立的 "runs" 文本,应按从左到右的顺序显示。由于整个块是从右到左的,因此您会看到两个 运行 按 RTL 顺序排列。
不清楚你的问题是想解决问题,还是只是好奇。但是,如果您需要完全显示方程 LTR,但在其他一些 RTL 文本的中间,您可以使用 Unicode control characters.
例如此 RTL 块中的文本将 two markers 之间的文本显示为 LTR 文本的连续 运行。
<body dir="RTL">
‪.00 x 2 = .00‬
</body>
在大多数情况下(如果可以的话)更简单的是将 LTR 文本与 HTML 元素隔离,例如:
<body dir="RTL">
<span dir="LTR">.00 x 2 = .00</span>
</body>
由于我看不懂阿拉伯语或希伯来语,所以我无法告诉您示例文本在嵌入到 RTL 脚本中时应该如何显示。但是,您确实可以控制渲染。
我有以下文字:
.00 x 2 = .00
当我将 direction: rtl;
应用到页面正文时,此文本显示为
x 2 = .00 .00
谁能解释一下为什么会这样显示?
您问题的完整答案必须解释 Unicode Bidirectional Algorithm 的工作原理,而且它非常复杂。
根据我有限的理解,该算法检测到 "x 2 = .00" 和“$3.00”是两个独立的 "runs" 文本,应按从左到右的顺序显示。由于整个块是从右到左的,因此您会看到两个 运行 按 RTL 顺序排列。
不清楚你的问题是想解决问题,还是只是好奇。但是,如果您需要完全显示方程 LTR,但在其他一些 RTL 文本的中间,您可以使用 Unicode control characters.
例如此 RTL 块中的文本将 two markers 之间的文本显示为 LTR 文本的连续 运行。
<body dir="RTL">
‪.00 x 2 = .00‬
</body>
在大多数情况下(如果可以的话)更简单的是将 LTR 文本与 HTML 元素隔离,例如:
<body dir="RTL">
<span dir="LTR">.00 x 2 = .00</span>
</body>
由于我看不懂阿拉伯语或希伯来语,所以我无法告诉您示例文本在嵌入到 RTL 脚本中时应该如何显示。但是,您确实可以控制渲染。