5

私は今日、アンカーが2つのアラビア語のものと(より良い言葉を求めて)マージしているように見えるという奇妙な問題に遭遇しました。

なぜこれが起こるのか誰かが説明できますか?

これが実際に動作していることを示すjsfiddleがここにあります。

これは以下のhtmlです。

<div>
    <a href="#">بيان الخصوصية</a>
    <a href="#">شروط الاستخدام</a>
    <a href="#">© 2012 Hewlett-Packard Development Company, L.R</a>
</div>​
4

2 に答える 2

4

テキストの方向を右から左に設定してみてください。

CSS:

.rtl {direction:rtl; }

HTML:

<div class="rtl">
    <a href="#">بيان الخصوصية</a>
    <a href="#">شروط الاستخدام</a>&nbsp;
    <a href="#">© 2012 Hewlett-Packard Development Company, L.R</a>
</div>

ページ全体のbodyタグにrtlを配置し、英語部分の​​左から右へのクラスを作成することをお勧めします。

于 2012-07-30T15:12:20.770 に答える
1

これは、固有の方向性が異なる文字があるために発生します。左から右に強い(ラテン文字)、右から左に強い(アラビア文字)、および多かれ少なかれ中立または適応(数字、著作権記号)です。本当にしばしば問題を引き起こすのはニュートラルです。

これを修正するには、全体的なレイアウトの方向性が右から左(主にアラビア語のコンテンツでは自然)であると想定して、たとえば3つのa要素が右から左に設定されるようにします。

body{ direction: rtl; }
:lang(en) { unicode-bidi: embed; direction: ltr; }

lang="en"最後のa要素に属性を追加します。class="en"あるいは、たとえばクラスと、のようなクラスセレクターを使用することもできますが、マークアップと言語セレクター.enを使用langする方が自然に聞こえます。

このように、全体的なrtl方向性は英語のテキストに対してオーバーライドされ、そのテキストは「方向性分離」に変換されるため、隣接するrtlテキストからの干渉なしに、そこにあるニュートラル文字はltr方向性に従います。

これにより、著作権ステートメントが英語のように表示され、左側に著作権記号が表示されます。

于 2012-07-30T17:50:43.817 に答える