Изменение направления тега HTML <title>справа налево - PullRequest
14 голосов
/ 02 января 2012

Рассмотрите этот заголовок для веб-страницы:
enter image description here

Это смешанный текст с языков справа налево и слева направо, и направленность всего текста можетбыть:

  1. Слева направо, если вы вставляете фрагменты rtl в текст ltr
    enter image description here

  2. Справа налево, если вы вставляете фрагменты ltr в текст rtl
    enter image description here

На некоторых веб-страницах вам необходимо указатьзаголовок справа налево, смешанный с фрагментами текста слева направо.Тем не менее, браузер не форматирует его правильно.Он отображает весь контент <title> с направленностью ltr.Это приводит к тому, что заголовок, который должен отображаться как
enter image description here
, должен отображаться как
enter image description here

Я знаю, что CSS там не работает.Есть ли способ заставить браузер рендерить <title> с правильной направленностью?

Ответы [ 6 ]

11 голосов
/ 02 января 2012

Вы можете попробовать использовать символ Юникод RIGHT-TO-LEFT OVERRIDE.См. здесь .
То есть, начинайте текст заголовка с &#x202E;
Быстрый тест показывает, что он работает, по крайней мере, в моем браузере;не уверен, что он будет работать во всех браузерах.И это может написать пиццу в обратном направлении.Используйте с осторожностью.

9 голосов
/ 02 января 2012

Используйте символ ВПРАВО вправо-влево (RLE, U + 202B) в начале содержимого элемента title, например,

<title>&#x202b;אבג Hello ابثج</title>

RLE обычно описывается и используется как символиспользуется (вместе с POP DIRECTIONAL FORMATTING) для встраивания ряда текста слева направо в текст справа налево или наоборот, в ситуациях, которые не обрабатываются автоматически автоматическими механизмами.Но, похоже, он работает и для title элементов, по крайней мере, в IE, Firefox и Opera.

4 голосов
/ 02 января 2012

Вы пробовали:

<title>left to right &#x202E;right to left</title>

Для тела вы можете использовать CSS (direction: rtl; и unicode-bidi: bidi-override;) или разметку (<bdo dir="rtl">).

Демо: http://jsfiddle.net/ThinkingStiff/hD5Sp/

HTML:

<span>left to right <bdo dir="rtl">"right to left"</bdo> left to right</span><br />
<span class="rtl">right to left <span class="ltr">"left to right"</span> right to left</span>

CSS:

.rtl {
    direction: rtl; 
    unicode-bidi: bidi-override;
}

.ltr {
    direction: ltr; 
    unicode-bidi: bidi-override;    
}

Выход:

enter image description here

0 голосов
/ 27 июня 2015

Просто используйте эти правила CSS, чтобы охватить все ситуации:

*[dir="ltr"] {
  direction: ltr;
  unicode-bidi: embed;
}
*[dir="rtl"] {
  direction: rtl;
  unicode-bidi: embed;
}
bdo[dir="ltr"] {
  direction: ltr;
  unicode-bidi: bidi-override;
}
bdo[dir="rtl"] {
  direction: rtl;
  unicode-bidi: bidi-override;
}
0 голосов
/ 28 декабря 2012

Возможно ли, чтобы часть заголовка была справа налево, а часть - слева направо?

, например:

<title> This part is right to left | This part is left to right | This part is righ to left </title>
0 голосов
/ 02 января 2012

Нет способа заставить браузер сменить направление. Конечно, вы можете написать предложение наоборот, и есть API, которые могут получить предполагаемый текст RTL и создать текст LTR, конечный результат которого выглядит как правильное предложение RTL.

Обратите внимание, что некоторые браузеры, особенно в местах с языком RTL, получают браузер, который в первую очередь является RTL. То есть их название RTL вообще. Для хорошего и для плохого. Таким образом, даже если вы примените взлом RTL-к-LTR, как я описал, эти пользователи увидят его в обратном порядке.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...