Справа налево (RTL) английские слова отображаются в формате HTML

Проблема в том,

<p>Hi world</p>

LTR:

Hi world

RTL:

world Hi

Я не могу получить этот дисплей RTL не использует CSS.

Я попробовал эти свойства CSS сейчас.

direction: rtl;
unicode-bidi: embed || normal; //same effect, nothing changes.
unicode-bidi: bidi-override; //each letter comes from r-t-l. Like: dlrow iH
text-align: right;

В любом случае, чтобы получить текст world Hi Форма с использованием CSS.

Спасибо

3 ответа

Решение

Нет, это невозможно, и направленность не предназначена для таких операций.

direction свойство, а также его HTML-аналог dir атрибут, задает направленность нейтрально направленного текста. Это не влияет на строки, которые имеют сильную внутреннюю направленность, даже если вмешиваются нейтральные символы, такие как пробелы. Значение bidi-override означает, что это говорит, это просто заставляет единственное направление письма.

Вам также нужно будет поработать над словами, и поскольку в CSS нет псевдоэлементов, которые можно было бы использовать здесь, вам нужно будет использовать реальные элементы, такие как разметка

<p><span class=w>Hi</span> <span class=w>world</span></p>

Затем вы можете использовать различные настройки направленности для всего элемента и отдельных слов:

span { unicode-bidi: embed;}
p { unicode-bidi: bidi-override; direction: rtl;  text-align: left; }   

Я думаю, что с "RTL" вы получите вывод, как: "Dlrow IH"

Поскольку вы не можете обнаружить отдельные слова в CSS, я бы порекомендовал использовать JavaScript для этой проблемы:

var string = "Hi world";
var array = string.split(" ");
var reversed = array.reverse();
reversed
-> ["world", "Hi"]

Я всегда думал, что направление чтения было установлено в открывающем теге html, вот так:

<html dir="rtl">
Другие вопросы по тегам