首先,我了解 bdo
元素的屬性 dir
與任何其他元素之間的差異。如果我們有以下文字:
Hello world!
<bdo dir="rtl">Hello world!</bdo>
將顯示文字的鏡像版本為:
!dlrow ,olleH
並且 <p dir="rtl">Hello world!</bdo>
將像平常一樣顯示阿拉伯語(yǔ)文字:
!Hello, world
為什麼 bdo 元素存在?我檢查了 MDN 的用例,但沒(méi)有找到任何用例。這個(gè)例子表明,在任何現(xiàn)實(shí)世界的應(yīng)用程式中,這對(duì)我來(lái)說(shuō)似乎都是無(wú)用的。是否存在鏡像文字被視為正常的 RTL 語(yǔ)言?或者這個(gè)元素還有另一個(gè)用例?
UPD:我甚至發(fā)現(xiàn)了 W3C 成員的一條推文:
推薦 BDO 永遠(yuǎn)是錯(cuò)的。
當(dāng)文字採(cǎi)用從右到左 (RTL) 書(shū)寫(xiě)的語(yǔ)言(例如阿拉伯語(yǔ)、希伯來(lái)語(yǔ)或波斯語(yǔ))並且需要在網(wǎng)頁(yè)上正確顯示時(shí),這非常有用。
例如,假設(shè)您有一個(gè)網(wǎng)頁(yè),其中包含一些英文文本,後面跟著阿拉伯語(yǔ)引用。如果不使用 bdo 元素,阿拉伯語(yǔ)引號(hào)將以與英語(yǔ)文本相同的方向顯示,這是不正確的。透過(guò)使用帶有「rtl」屬性的 bdo 元素,可以確保阿拉伯文本從右到左正確顯示。