17

私はアラビア語を話せませんが、Web でアラビア語の特定のサポートが必要です。アラビア語の単語の一部を<span>、残りの単語とは異なるスタイルにする必要があります。と の 2 文字を入力شするとس単語に合成されますشسが、HTML マークアップを使用すると

<span>ش</span>س

これらの文字は、出力では連結されません。

ここに画像の説明を入力

図では、目的の出力が 2 行目にあり、実際の出力が 1 行目にあります。

編集: Firefox では動作しますが、Chrome/Safari では動作しません。

4

3 に答える 3

20

要素 content:&zwj;の最後にゼロ幅のジョイナーを挿入します (たとえば、エンティティ参照を使用) 。span<span>ش&zwj;</span>س

より一般的には、テキストが筆記体 (結合) 動作を持つ必要があり、それを壊す可能性がある状況で、各要素の最初と最後、およびspan(より確実に) 各要素の前後にゼロ幅のジョイナーを使用します。spanspan

この問題については、Andreas Prilop によるBidirectional テキストページで説明および図解されています。

更新:残念ながら、&zwj;現在のバージョンの WebKit ブラウザーでは役に立たないようです。彼らは HTML マークアップを、何があっても結合動作を壊すものとして扱っているようです。

更新 2: @NasserAl-Wohaibi のコメントに記載されているように、新しい問題は&zwj;2 回使用することで解決できます。ただし、現在の Windows 用 Safari (5.1.7) では役に立ちません。実際、ش&zwj;س間違っても表示されますが、ジョイナーがないとشس正しく表示されます。

于 2012-06-22T12:55:54.583 に答える
3

これは実際にはWebKitで報告されたバグであるため、おそらくすべてのWebKitベースのブラウザーに影響します。

于 2012-06-22T12:38:07.607 に答える
2

Jukka K. Korpelaが指摘したように、これはほとんどのWebKit ベースのブラウザー(chrome、safari など) のバグです。

TAMDEED char 以外の単純なハックまたはアラビア文字のコンテキスト形式の取得は、単一のアラビア語合字として扱いたい文字の前後にゼロ幅結合(&zwj;または) を配置することです。2 つの文字が別の文字を構成します。例えば &#x200d;

<p>عرب&#x200d;<span style="color: Red;">&#x200d;ي</span></p>  

demo: jsfiddle Webkitバグレポート
も参照してください。

于 2012-12-01T09:54:08.100 に答える