【问题标题】:Why does dir attribute not work inline text of same directional-type but works on inline-block text?为什么 dir 属性不适用于相同方向类型的内联文本,但适用于内联块文本?
【发布时间】:2016-10-20 15:44:27
【问题描述】:

你好user r12a

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

<div dir="ltr">
  one اثنان three
</div>

<div dir="rtl">
  one اثنان three
</div>

到目前为止一切顺利。 dir 属性证明设置文本的基本方向。但令人惊讶的是,如果封闭的字母属于相同的强类型类别、rtl 或ltr,它不会设置基本方向。例如。如果我将dir rtl 设置为one two three,那么我希望dir强制改变基本方向并将结果输出为three two one。下面的例子表明它没有:

<div dir="ltr">  
  One two three  
</div>  

<div dir="rtl">  
  One two three  
</div>

问题 1: 声称dir 属性设置文本的基本方向MDN articlew3c article 在技术上是否不正确? p>

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

    <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>

这里所有三个字母都是 ltr 强类型,就像倒数第二个示例一样,但与该示例相反,现在 dir 属性能够更改文本的基本方向。

问题 2: 为什么dir 可以改变 inline-block 文本的基本方向,但不能改变 inline 文本的基本方向?

【问题讨论】:

  • 这不是一样的as your other question?
  • @j08691 另一个问题询问它与text-align: left 有何不同。在这个问题中,我问的是 MDN 定义在技术上是否正确。

标签: html right-to-left w3c bidirectional


【解决方案1】:

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

【讨论】:

  • 您好用户@r12a,感谢您的解释。我已经编辑了问题以添加更多观点。你能看一下吗?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-10-05
  • 1970-01-01
相关资源
最近更新 更多