为什么
<input type="text" dir="rtl" value="08/15 word">
渲染到word 08/15
而不是08/15 word
?
为什么
<input type="text" dir="rtl" value="one word">
渲染到one word
吗?
为什么在第一种情况下切换顺序,而在第二种情况下却不切换?
答案 0 :(得分:1)
dir=rtl
给出了文本的基本方向。在该文本中,带有拉丁字母的单词仍然会从左到右书写,并且带有拉丁字母的多个单词(即英语句子)也会从左到右排序!
例如,阿拉伯语,沿dir=ltr
(默认)的基本方向:无论如何,它都会从右到左书写,即使环境另有说明,多个阿拉伯词也将从右到左排序。
为此,浏览器(或通常的文本渲染器)使用Unicode bidi算法。该算法本身需要知道字符的方向性,这也是Unicode的一部分。拉丁字母和阿拉伯字母具有较强的方向性,而“正常”数字的从左至右方向则较弱。
在弱和强之间进行了区分,因为在ltr和rtl语言中都使用数字。数字本身始终是从左到右书写的,但是如果被强壮的rtl单词包围,则将按从右至左的顺序对单词进行排序;如果被强烈的ltr单词包围,则将按从左至右的顺序对单词进行排序。
如果数字不被强键入词包围,则使用基本方向。
您的ltr-“ 08/15”没有被ltr包围,因此它是从ltr单词“ word”放置rtl(基本方向)。
“一个单词”是两个有方向性的单词,因此它们本身是ltr的布局,这些单词也是ltr的布局。不管基本方向是什么。
尝试“第一08/15秒”,数字将被认为是更大的ltr句子的一部分,并列出了ltr。
答案 1 :(得分:0)
dir = RTL特性
数字(例如电话号码)中的数字顺序不是 与从左到右的写作不同。
当组合可以在RTL和LTR中使用的符号时 语言(例如句号,逗号或其他标点符号), 它们的显示位置将取决于文本的方向。 这是因为数据格式是从头开始的,但是 浏览器仍在沿RTL方向处理RTL字,并且 标点符号转换为 指定。
有关更多信息,请参见this article