我有以下文字:
$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">
‪$3.00 x 2 = $6.00‬
</body>
在大多数情况下(如果可以的话(更简单的是使用 HTML 元素隔离 LTR 文本,例如:
<body dir="RTL">
<span dir="LTR">$3.00 x 2 = $6.00</span>
</body>
由于我无法阅读阿拉伯语或希伯来语,因此我无法告诉您嵌入 RTL 脚本时示例文本应如何显示。但是,您确实可以控制渲染。