Почему атрибут dir не работает со встроенным текстом того же направленного типа, но работает с текстом встроенного блока?

Здравствуйте, пользователь r12a!

Я прочитал ссылки, которые вы упомянули в другом ответе. Но у меня все еще есть некоторые сомнения. Атрибут dir задает базовое направление текста. Поэтому, если я установлю базовое направление One اثنان three на ltr, тогда оно должно остаться таким, как есть, а если я установлю dir на rtl, то выход должен быть three اثنان One. Сценарий ниже показывает, что он работает так, как ожидалось:

<div dir="ltr">
  one اثنان three
</div>

<div dir="rtl">
  one اثنان three
</div>

Все идет нормально. Атрибут dir задает базовое направление текста. Но удивительно, что он не устанавливает базовое направление, если вложенные буквы принадлежат к одной и той же строгой типизированной категории, rtl или ltr. Например. Если я установлю dir rtl на one two three, то я ожидаю, что dir принудительно изменит базовое направление и выведет результат как three two one. Следующий пример показывает, что это не так:

<div dir="ltr">  
  One two three  
</div>  

<div dir="rtl">  
  One two three  
</div>

Вопрос 1. Является ли статья MDN и статьи w3c, в которых утверждается этот атрибут dir задает базовое направление текста, технически неверно?

Рассмотрим другой сценарий. Слова one, two и three объявлены встроенными блоками, перекрывающими их встроенный тип отображения по умолчанию:

    <div dir="rtl">
        <span style="display: inline-block">One</span>
        <span style="display: inline-block">Two</span>
        <span style="display: inline-block">Three</span>
    </div>

Здесь все три буквы строго типизированы, как и в предпоследнем примере, но в отличие от этого примера теперь атрибут dir может изменять базовое направление текста.

Вопрос 2. Почему dir может изменить базовое направление встроенного текста, но не встроенного текста?


person user31782    schedule 20.10.2016    source источник
comment
Разве это не то же самое , что и еще вопрос?   -  person j08691    schedule 20.10.2016
comment
@ j08691 Другой вопрос касается того, чем он отличается от text-align: left. В этом вопросе я спрашиваю, является ли определение MDN технически правильным или нет.   -  person user31782    schedule 20.10.2016


Ответы (1)


Определение MDN верное. То, что вы видите, — это эффект двунаправленного алгоритма Unicode. Атрибут dir задает базовое направление (т. е. направленный контекст) для размещения групп последовательностей символов в одном направлении. Прочитайте ответ на другой ваш вопрос чтобы лучше понять детали.

person r12a    schedule 21.10.2016
comment
Привет, пользователь @r12a, спасибо за объяснение. Я отредактировал вопрос, чтобы добавить еще несколько пунктов. Не мог бы ты взглянуть на это? - person user31782; 22.10.2016