您好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
。以下示例显示它没有:
three two one
&#13;
问题1: MDN article和w3c article是否声称<div dir="ltr">
One two three
</div>
<div dir="rtl">
One two three
</div>
属性设置了文本的基本方向 ,技术上不正确?
让我们考虑另一种情况。单词dir
,one
和two
被声明为内嵌块,覆盖其默认的内联显示类型:
three
&#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
可以更改内联块文本的基本方向,但不能更改内联文本的基本方向?
答案 0 :(得分:3)
MDN定义是正确的。您看到的是Unicode双向算法的效果。 dir属性设置基本方向(即方向上下文),用于排列相同方向字符序列的块。阅读answer to your other question以更好地了解详细信息。