如何为阿拉伯语和其他从右到左的语言创建RTL文本

时间:2016-01-04 20:24:12

标签: html html5 right-to-left

您打算如何为阿拉伯语设置文字。 据我了解,如果下面的句子是阿拉伯语: “猫坐在垫子上” 它会正确对齐并镜像从右到左阅读: “tam eht no tas tac ehT”

但是,如果您使用dir =“rtl”属性,则不会执行此操作。 http://www.w3schools.com/tags/tryit.asp?filename=tryhtml5_global_dir

我错过了什么吗?

1 个答案:

答案 0 :(得分:1)

您误解了dir属性。

显示的每个单词中的字符顺序由Unicode双向算法决定,而不是由dir属性决定。

换句话说,像英语这样的语言从左到右阅读。但是,对于其他语言(如阿拉伯语),Unicode算法将从右到左呈现。

从W3开始。

  

为了在显示HTML页面时文本看起来正确,我们需要建立该文本的方向上下文。我们将该上下文称为文本的基本方向。

     

为Unicode双向算法建立适当的基本方向以生成所显示文本的预期排序,这一点至关重要。正确指定基本方向还会为文本建立正确的默认对齐方式。

     

在HTML中,基本方向由最近的使用dir属性的父元素显式设置,或者,如果没有这样的属性,则基本方向将从文档的默认方向继承,该方向是 - 到右边(LTR)。

     

将dir =“rtl”添加到html元素将导致块元素和表格列从右侧开始并从右向左流动。除非明确覆盖方向,否则文档中的所有块元素都将继承此设置。

参考

http://www.w3.org/International/questions/qa-html-dir