为什么dir属性不能使用相同方向类型的内联文本但是对内联块文本有效?

时间:2016-10-20 15:44:28

标签: html right-to-left w3c bidirectional

您好user r12a

我在另一个答案中读到了你提到的链接。但我还是有些疑惑。 dir属性设置文本的基本方向。因此,如果我将One اثنان three的基本方向设置为ltr,那么它必须保持原样,如果我将dir设置为rtl,则输出应为{{1 }}。下面的脚本显示它按预期工作:



three اثنان One




到目前为止一切顺利。 <div dir="ltr"> one اثنان three </div> <div dir="rtl"> one اثنان three </div>属性证明可以设置文本的基本方向。但令人惊讶的是,如果附加的字母属于同一个强类型,rtl或ltr,则不会设置基本方向。例如。如果我将dir rtl设置为dir,那么我希望one two three 强制更改基本方向,并将结果输出为dir。以下示例显示它没有:

&#13;
&#13;
three two one
&#13;
&#13;
&#13;

问题1: MDN articlew3c article是否声称<div dir="ltr"> One two three </div> <div dir="rtl"> One two three </div>属性设置了文本的基本方向 ,技术上不正确?

让我们考虑另一种情况。单词dironetwo被声明为内嵌块,覆盖其默认的内联显示类型:

&#13;
&#13;
three
&#13;
&#13;
&#13;

这里所有三个字母都是ltr强类型,就像倒数第二个例子一样,但与此示例相反,现在 <div dir="rtl"> <span style="display: inline-block">One</span> <span style="display: inline-block">Two</span> <span style="display: inline-block">Three</span> </div>属性能够改变文本的基本方向。

问题2:为什么dir可以更改内联块文本的基本方向,但不能更改内联文本的基本方向?

1 个答案:

答案 0 :(得分:3)

MDN定义是正确的。您看到的是Unicode双向算法的效果。 dir属性设置基本方向(即方向上下文),用于排列相同方向字符序列的块。阅读answer to your other question以更好地了解详细信息。