我有以下文字:
$ 3.00 x 2 = $ 6.00
当我将direction: rtl;
应用于页面正文时,此文本显示为
x 2 = $ 6.00 $ 3.00
任何人都可以解释为什么它以这种方式显示吗?
答案 0 :(得分:0)
要完全回答您的问题,必须说明Unicode Bidirectional Algorithm的工作原理,而且非常复杂。
据我有限的理解,该算法检测到“ x 2 = $ 6.00”和“ $ 3.00”是两个单独的“游程”文本,应按从左到右的顺序显示。由于整个块是从右到左,因此您会看到这两个块以RTL顺序运行。
不清楚您的问题是试图解决问题还是好奇。但是,如果您需要完全以LTR显示方程式,但是在其他一些RTL文本中间,则可以使用Unicode control characters。
例如该RTL块中的文本将显示two markers之间的文本,作为连续运行的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脚本后应如何显示。但是,您确实可以控制渲染。