Когда мой веб-сайт отображает текст на иврите, смешанный с цифрами, и есть число с тире посередине, отображается номер с тире посередине. RTL. Например, с текстом:
רמה 4–0
он должен отображать 4-0
вместо 0-4
, поскольку это числовая последовательность, а «4» предшествует «0». Однако в проверенных мной браузерах он показывает «0» перед «4».
Так как это может произойти в любом месте отображения системных данных, было бы гораздо предпочтительнее иметь решение CSS, которое не требует чего-то вроде:
<span style="direction:ltr">4-0</span>
Общее направление текста должно оставаться RTL, но числа с тире должны будет отображаться LTR. Должен правильно отображаться в основных браузерах (IE, Firefox, Chrome).
Есть еще один способ сделать это, добавив & # x200E; перед цифрами:
<span>‎+44 780-780-7807</span>
Ответ с упоминанием & amp; lrm; и & amp; rlm; верно. Вставка этих невидимых маркеров до или после символа со «слабым» направлением (знаки препинания или цифры, которые не имеют «сильного» направления, такого как латинские буквы или буквы арабского языка / иврита) гарантируют, что слабый символ наследует желаемое направление.
В статье Википедии "Двунаправленный текст" / "Двунаправленный текст" содержится отличное описание проблемы и того, как интерпретаторы Unicode должны обрабатывать текст со смешанным направлением. Это помогло мне понять проблему:
http://en.wikipedia.org/wiki/Bi-directional_text
Мое личное решение - избегать использования & amp ; LRM; / & амп; RLM; символы, потому что я создаю сайт, который должен работать в обоих направлениях, а вставка контента приведет к огромному беспорядку. Вместо этого они могут быть автоматически вставлены с использованием CSS-свойств «до» и «после». Вот пример, использующий обозначение Unicode «\ 200F» для маркера RLM:
#RIGHT-TO-LEFT-MARKER-CONTENT,
.contributor:after,
/*.contributor:before,*/
.right-to-left-marker-content {
/*Inserts ‏ marker to ensure
the contained content is always
displayed RTL*/
content: "\200F";
}
(Обратите внимание, что CSS находится в формате «СУХОЙ CSS», который позволяет вам добавлять селекторы по мере необходимости, чтобы избежать повторного указания фактическое объявление стиля снова и снова. Важной частью является только то, что у вас есть содержимое: "\ 200F" и что вы добавляете: before или: after к селектору по мере необходимости.
используйте этот класс:
.number_ltr {
direction: ltr!important;
unicode-bidi: embed;
}
, поэтому ваш HTML-код должен выглядеть следующим образом:
<span class="number_ltr">4-0</span>
НЕ рассматривайте обратную последовательность, пожалуйста, так как это также сделает результат обратным, если пользователь попытается скопировать и вставить его в другое приложение. Вместо этого вас могут заинтересовать не-css решения:
LRM/RLM
LRE/RLE…PDF