2

unicode-bidi プロパティの使用法を学ぶのに苦労しています。たとえば、ラテン アルファベット文字の単語形式に方向を設定し、値embedを unicode-bidi プロパティに割り当てると、単語は分離され、周囲のコンテキストに影響を与えないと考えました。ただし、以下のコードは、私が期待したものとは反対のことを行います。

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
</head>
<body>
<span style="direction:rtl;unicode-bidi:embed"> James</span>:15<br/>
<span style="direction:rtl;"> James:</span>15
</body>
</html>

「rtl」テキストが分離されているため、最初のものは右側の数字を示していると思いますが、2番目のものはそれを行います。

プロパティ unicode-bidi がアラビア語、ヘブライ語などの単語に役立つことは知っていますが、ここで何が起こるのだろうか。

Google と here を検索して、unicode-bidi の機能に対する確実な答えを見つけましたが、見つけられるのは「1 つの埋め込みレベルを提供する」だけで、十分に明確ではありません。

誰かがこのプロパティと、上記のコードで何が起こるかを説明できますか?

4

1 に答える 1

1

埋め込みの意味は、UAX #9 Unicode Bidirectional Algorithmで最終的に定義されています。すべてを理解しているふりをしたくはありませんが、あなたの場合は次のようになります。

コードの 2 番目の部分では、文字列「James」の右から左方向を宣言するだけです。このdirectionプロパティは、全体的なレイアウトの方向 (たとえば、テーブルの列が左から右か右から左か) と、方向的にニュートラルなテキストのテキスト方向にのみ影響するため、影響はありません。ここでは、コンテンツには、左から右への強い方向性を持つラテン文字と、強い方向性を持つ隣接する文字の方向性に適応するスペースのみが含まれています。

ただし、最初の部分では、宣言によって、宣言された方向性 (右から左) に従ってunicode-bidi:embed要素全体が処理されます。ただし、その方向性は要素内では影響しません。ある意味では、右から左への単一の文字のように機能します。これを X でマークすると、X:15 になります。これは、X がアラビア文字である場合と同じようにレンダリングされます。この方向性の強い文字が右側に表示され、その左に方向性の弱い句読点「:」が表示され、次に一般的な数字の 15 が左から右に表示されます。 (アラビア語のテキスト内でもそうです)。

于 2014-12-01T18:20:52.123 に答える