M. *_* E. 8 html css bidirectional
在HTML中,<bdo>
标记用于覆盖当前文本方向.
当我有<div>
标签时,我应该<bdo>
在里面使用标签吗?
<div><bdo dir="rtl">TEXT</bdo></div>
Run Code Online (Sandbox Code Playgroud)
或者我应该使用CSS类作为<div>
标记:
<div class="rtl-lang">TEXT</div>
Run Code Online (Sandbox Code Playgroud)
我的问题是:我<bdo>
什么时候应该使用标签?它会被弃用吗?
您通常不应该使用该bdo
元素或其CSS副本,因为它们旨在用于特殊情况,您需要覆盖正常的双向性规则.它们意味着强制书写方向,这意味着字母的固有方向性将被覆盖.
对于从右到左语言的任何普通文本,<div dir=rtl>...</div>
就足够了.事实上,在大多数情况下,你甚至不需要,因为默认情况下,拉丁语,希腊语和西里尔字母将从左到右运行,阿拉伯语和希伯来语字母将从右到左运行,中性字符也会效仿.但该dir
属性仍然是针对特殊情况和浏览器错误的有用预防措施.
使用dir
而不是相应的CSS是优选的,因为书写方向不仅仅是一种随意的表达建议,如字体,颜色和背景,而是书写系统的组成部分.
因此,bdo
只有在您有充分理由覆盖双向性算法时才应该使用.如果你想知道你是否有充分的理由,那么你没有.但这是一个例子.如果你写
The letters א, ב, and ג...
Run Code Online (Sandbox Code Playgroud)
然后视觉顺序将是错误的,因为希伯来字母א和ב将以错误的视觉顺序出现(给定英语语境).它们之间的逗号是中性的,所以它们从右到左.为了防止这种情况,你会写
The letters <bdo dir=ltr>א, ב,</bdo> and ג...
Run Code Online (Sandbox Code Playgroud)
没有理由期望bdo
被弃用.它有其用途,虽然很少见,但在相关范围内,它有其用途.在极少数情况下使用HTML而不是CSS更合乎逻辑,使用HTML而不是控制覆盖正常方向性的字符更实际.