rtlHTMLページに負の数を表示しようとしています。
ラベルが私の反応しないようですdirection: ltr
反対のシナリオを表示するためにjsFiddleを作成しました(右から左に表示しようとしています)。
rtlHTMLページに負の数を表示しようとしています。
ラベルが私の反応しないようですdirection: ltr
反対のシナリオを表示するためにjsFiddleを作成しました(右から左に表示しようとしています)。
direction: ltr
数字の左側にマイナス記号を付けない理由は、周囲の文字が右から左の文字であり、数字やマイナス(またはハイフン)などの「ニュートラル」文字がその方向性をとるようにするためです。このdirection
プロパティは、テキストの書き込み方向ではなく、ボックスのレイアウト方向と関連する問題に影響します。
次のことを考慮してください。
<p>א <label id="ProfitShk" class="labelVal">-9 ₪</label> ת
<p>a <label id="ProfitShk" class="labelVal">-9 ₪</label> b
最初のケースでは、ハイフンは数字9の右側に表示され、周囲のテキストの書き込み方向に従います。2番目のケースでは、周囲の文字がラテン文字であり、固有の左から右への方向性があるため、順序が逆になります。
これはトリッキーな問題であり、ヘブライ語の一部のページでは、HTMLソースの数字の後にハイフンを付けるというトリックを使用しているようです。そのため、右から左への書き込みを適用すると、数字の左側にハイフンが表示されます。
より適切なアプローチは次のとおりです。
unicode-bidi: bidi-override
CSSで。と一緒に使用しdirection
ます。これは、コンテンツ内で固有の方向性が無視され、で指定された順序direction
が適用されることを意味します。unicode-bidi: embed
CSSで。と一緒に使用しdirection
ます。これにより、周囲のテキストが方向性に影響を与えない「方向性の島」が作成されます。要素のコンテンツに「ニュートラル」文字のみが含まれている場合、direction
プロパティはテキストの方向を設定します。<bdo>
して、HTMLの要素を使用しdir
ます。これは方法2のHTML版であり、これは文体的な表現の提案(CSSの目的であり、最も効果的です)ではなく、方向性のいくつかの基本的な問題に対処することに関するものであるという意味で優れています。‎
およびとして表すことができます‏
。これにより、文字列の前の最後の文字が左から右のマークになり、「ニュートラル」文字のみが含まれている場合は、左から右に表示されます。これは、複雑な問題の簡略化されたプレゼンテーションでした。とにかく、使用すること<bdo>
がおそらく最良のアプローチです。すべてのアプローチで、方向性の設定は、例の-9など、可能な限り最小の文字列に制限する必要があります。
<p>א <label id="ProfitShk" class="labelVal"><bdo dir="ltr">-9</bdo> ₪</label> ת
マイナス記号として使用される文字は、実際にはUnicodeマイナス「-」U + 2212マイナス記号である必要があり、HTMLではとして表現できます−
が、これは方向性の問題には影響しません。
ヘンリックの答えに加えて、マイナス記号の前にLRM制御文字を次のように追加します。
<label id="ProfitShk" class="labelVal">‎-9 ₪</label>
このようにして、マイナス記号が9の前に配置されます(これはおそらくあなたが望むものです)
このMicrosoftドキュメントでは、LRM制御文字と他の制御文字について説明しています。