1. 程式人生 > >通過HTML和CSS設定文字方向

通過HTML和CSS設定文字方向

HTML文字中預設的文字方向是left to right。但對於古漢語或者阿拉伯語等語言,文字方向則是right to left。如何實現呢?

1. HTML方式:<bdo dir="rtl"></bdo> 點選進入官方網頁

HTML程式碼如下:

<bdo dir="ltr">a bc de.</bdo>
<bdo dir="rtl">A BC DE%</bdo>

顯示效果如下:

a bc de.
%ED CB A

可見:通過HTML中的bdo標籤改變文字方向,是依照從右向左的順序依次輸出bdo標籤中的每個字元。但輸出的內容還是從螢幕的左側依次向右輸出。不要與text-align:right和float:right搞混。

2. CSS方式:{direction:rtl;}

HTML和CSS如下:

<p style="direction: rtl;">It's a beautiful world, isn't it? I think it [email protected]#$%[]{}</p>
<p>It's a beautiful world, isn't it? I think it [email protected]#$%[]{}</p>
<p style="direction: rtl;">It's a beautiful world, isn't it? I think it 
[email protected]
#$%[]{}abc!</p> <p>It's a beautiful world, isn't it? I think it [email protected]#$%[]{}abc!</p>

顯示效果如下:

                                            {}[]%$#@!?.It's a beautiful world, isn't it? I think it is

It's a beautiful world, isn't it? I think it [email protected]
#$%[]{}abc! !It's a beautiful world, isn't it? I think it [email protected]#$%[]{}abc It's a beautiful world, isn't it? I think it [email protected]#$%[]{}abc!

可見:格式上,使用了direction的文字呈現右對齊;內容上,可以將這段內容中中最後一個非符號字元(含)之前看成是文字部分,最後的符號看成是符號部分,每個符號都是一個獨立的部分。(如果一個符號前後都有文字字元,那這麼符號將被認為是文字部分。)然後在頁面上從右向左倒序輸出以上的所有部分,即,首先輸出完整的文字部分,然後再倒序一次輸出所有符號部分。

3. CSS方式:{direction:rtl; unicode-bidi: bidi-override;}

HTML和CSS如下:(對2中的原始碼進行修改,在style部分新增unicode-bidi: bidi-override;部分)

<p style="direction: rtl; unicode-bidi: bidi-override;">It's a beautiful world, isn't it? I think it [email protected]#$%[]{}</p>

顯示效果如下:

                                                {}[]%$#@!?.si ti kniht I ?ti t'nsi ,dlrow lufituaeb a s'tI

可見:每一個字元都是一個獨立的個體,頁面將從右向左依次倒敘輸出所有字元。

總結見下表:

(純從文字技巧層面來看,1和3的實現比較徹底,但從語義來看,可能2有實際的應用意義,並不確定,有待以後探究!)

對設定文字方向的幾種方式的比較

方式 格式 文字 1 左對齊 完全倒敘 2 右對齊 部分倒敘 3 右對齊 完全倒敘

這篇文章解釋得更詳細:我的小樹林