我应该总是使用bdo进行文字指导吗?

时间:2013-10-03 15:57:14

标签: html css bidirectional

在HTML中,<bdo>标记用于覆​​盖当前文本方向。

当我有<div>标记时,我应该在其中使用<bdo>标记吗?

<div><bdo dir="rtl">TEXT</bdo></div>

或者我应该为<div>标签使用CSS类:

<div class="rtl-lang">TEXT</div>

我的问题是:我应该何时使用<bdo>代码?它会被弃用吗?

2 个答案:

答案 0 :(得分:8)

您通常使用bdo元素或其CSS副本,因为它们是用于需要覆盖正常的双向性规则。它们意味着强制书写方向,这意味着字母的固有方向性将被覆盖。

对于从右到左语言的任何普通文本,<div dir=rtl>...</div>就足够了。事实上,在大多数情况下,你甚至不需要,因为默认情况下,拉丁语,希腊语和西里尔字母将从左到右运行,阿拉伯语和希伯来语字母将从右到左运行,中性字符也会效仿。但是dir属性仍然是针对特殊情况和浏览器错误的有用预防措施。

使用dir而不是相应的CSS是首选,因为书写方向不仅仅是一种随意的表达建议,如字体,颜色和背景,而是书写系统的组成部分。

因此,只有在您有充分理由覆盖双向性算法时才应使用bdo。如果你想知道你是否有充分的理由,那么你没有。但这是一个例子。如果你写

The letters &#x5d0;, &#x5d1;, and &#x5d2;...

然后视觉顺序将是错误的,因为希伯来字母א和ב将以错误的视觉顺序出现(给定英语语境)。它们之间的逗号是中性的,所以它们从右到左。为了防止这种情况,你可以写

The letters <bdo dir=ltr>&#x5d0;, &#x5d1;,</bdo> and &#x5d2;...

没有理由期望bdo被弃用。它有其用途,虽然很少见,但在相关范围内,它有其用途。在极少数情况下使用HTML而不是CSS更合乎逻辑,使用HTML而不是控制覆盖正常方向性的字符更为实际。

答案 1 :(得分:1)

它表明它包含在HTML5规范http://www.w3.org/wiki/HTML/Elements/bdo中,并且在https://developer.mozilla.org/en-US/docs/Web/HTML/Element/bdo上显示它是HTML5的候选推荐标准。它会被弃用吗?很可能不是。