Подтвердить что ты не робот

Почему "[x] y" отображается неправильно в направлении RTL?

<div style="direction: rtl">
[x]y
</div>
4b9b3361

Ответ 1

Отображается правильно, то есть согласно спецификациям. Вы попросили раскладку справа налево. Сначала рендеринг возвращает символ [. Он направленно нейтрален и, следовательно, визуализируется в RTL-режиме справа и зеркалируется (поэтому он выглядит как ]). Далее, слева от него приходит x]y в этом порядке, так как латинские буквы x и y имеют присущую направленность слева направо, а нейтральная ] получает от них свою направленность.
Выводы, которые нужно сделать, зависят от желаемого рендеринга и ваших причин использования направленности справа налево.

Ответ 2

Я не могу сказать вам причину, но могу сказать вам, как ее исправить: add unicode-bidi: bidi-override;. См. подробнее об этом

<div style="direction: rtl; unicode-bidi: bidi-override;">
[x]y
</div>

Ответ 3

После некоторых исследований я нашел следующую информацию: Прямое правое направление текста

Скобки и квадратные скобки не имеют неотъемлемого направления. Открытые круглые скобки заключаются между текстовыми пробегами LTR и RTL и поэтому не могут "наследовать" направление окружающего текста. Поэтому он по умолчанию ссылается на базовое направление RTL абзаца и помещается слева от еврейского слова shalom. Обратите внимание, что закрывающая квадратная скобка встроена в один проход текста слева направо. Поэтому он принимает направление своего окружающего текста и помещается справа от английского слова shalom.

Ответ 5

Попробуйте использовать открытую квадратную скобку "[", где вам нужна закрытая квадратная скобка, и наоборот. У меня был шрифт с буквой, сопоставленной с "[", и она не отображалась. Я изменил букву в базе данных на "]", и она сработала.