CSS direction — напрямок тексту справа наліво


Властивість direction вказує напрямов написання тексту.

Це актуально, наприклад, для арабських мов, де читання відбувається справа наліво. Властивість direction відповідає за наступне:

  • спосіб відображення тексту в блоці;
  • порядок колонок в таблиці;
  • положення смуги прокрутки в блоці

Використовуйте rtl для мов, які пишуться справа наліво (на зразок івриту або арабської мови), і ltr для тих, які пишуться зліва направо (наприклад, українська, англійська та більшість інших мов). Зауважте, що напрямок тексту зазвичай визначається в межах документа (наприклад, з атрибутом dir у форматі HTML), а не за допомогою прямого використання властивості direction.

автор: Svitlana

Загальний опис

автор: NagarD

Нотатка

Використовуйте цю властивість разом з властивістю unicode-bidi, щоб встановити підтримку декількох мов в одному документі.

автор: Svitlana

Синтаксис

direction: ltr|rtl|initial|inherit;

Властивість direction може отримувати 4 значень:

ltr

Встановлює напрямок зліва направо

автор: Svitlana

rtl

Встановлює напрямок справа наліво

автор: Svitlana

initial

Встановлює властивість у значення без задання

автор: Svitlana

inherit

Вказує на спадковість властивості від свого батьківського елемента

автор: Svitlana

Значення без задання: ltr
Наслідує: Так
Анімується: Ні
JavaScript синтаксис: object.style.direction="rtl"

Переглядачі

Підтримка: стаціонарні переглядачі
Переглядач Google Chrome Mozilla Firefox Apple Safari Opera Microsoft EDGE Microsoft Internet Explorer
2 1 1 9.2 12 5.5
Підтримка: мобільні переглядачі
Переглядач Mobile Google Android Mobile Google Chrome Mobile Mozilla Firefox Mobile Apple Safari
4.4 18 4 1

Приклади

+ запропонувати свій приклад у пісочниці

direction: rtl розгортає рядок справа наліво: текст притискається до правого краю, а розділові знаки перескакують на протилежний бік.

HTML

<p class="ltr">Звичайний напрямок: зліва направо.</p>
<p class="rtl">Той самий текст, але напрямок rtl.</p>

CSS

.ltr { direction: ltr; }
.rtl { direction: rtl; }
автор: Svitlana

Приклад використання

HTML

<p>Тут ми не задаємо спеціальних значень для властивостей напрямку тексту, зокрема <strong>direction</strong>. Значення береться без задання. Так як текст написаний українською мовою, то воно дорівнює <em>ltr</em>, тобто текст пишеться зліва направо.</p>
<p class="rtl">А для цього абзацу ми задали <strong>direction</strong> зі значенням <em>rtl</em>. Й текст тепер пишеться справа наліво.</p>

CSS

body {
  font-size: 18px;
  font-family: sans-serif;
}

.rtl {
  direction: rtl;
}
автор: Svitlana

Те саме речення з direction: rtl і з text-align: right — у першому крапка перестрибує на початок рядка.

HTML

<p class="rtl">Це звичайне речення українською.</p>

<p class="right">Це звичайне речення українською.</p>

CSS

body {
  font-family: sans-serif;
  font-size: 18px;
  padding: 16px;
}

p {
  border: 1px solid #bbb;
  padding: 8px;
  margin: 0 0 12px;
}

/* напрям рядка: крапка йде на лівий край */
.rtl {
  direction: rtl;
}

/* лише вирівнювання: крапка лишається на місці */
.right {
  text-align: right;
}
автор: NagarD

Значення у дії

HTML

<p>Цей приклад показує як працює властивість <code>direction</code>. Спробуйте вимкнути/ввімкнути перемикач, щоб змінити відображення тексту нижче.</p>

<p>У цьому прикладі, ми можемо змінювати напрямок тексту.</p>

<div class="inputs">
  <input id="ltr" checked name="direction" type="radio"/>
  <label for="ltr">ltr</label>
  <message for="ltr">Встановлює напрямок зліва направо.</message>
  
  <input id="rtl" name="direction" type="radio"/>
  <label for="rtl">rtl</label>
  <message for="rtl">Встановлює напрямок справа наліво.</message>
</div>

<p id="message">Встановлює напрямок зліва направо.</p>

<hr>

<p id="block">Це текст. <br> Просто текст для прикладу.</p>

CSS

* {
  box-sizing: border-box;
  padding: 0;
}

body {
  font-family: sans-serif;
}

#block {
  font-size: 1.75em; 
  direction: ltr;
}

message {
  display: none;
}

JS

const message = document.querySelector('#message');

document.querySelectorAll('.inputs input').forEach((el) => el.addEventListener('change', function () {

  var messageText = document.querySelector("message[for='" + this.id + "']");
  message.textContent = messageText?.textContent ?? '';

  document.querySelectorAll('#block').forEach((n) => n.style.setProperty('direction', this.id));

}));
автор: Svitlana

Коментарі

Коментарів ще немає — будьте першим!

Відповідь для

Як форматувати текст?
Пишемо Виходить
**важливо**
*акцент*
~~застаріле~~
Виділення в тексті. Те саме роблять кнопки панелі, що спливає над виділеним.
## Як працює каскад
### Порядок оголошень
Заголовки всередині тексту. Найбільший не потрібен — він у сторінки вже є.
[[css/property/color]] Посилання на сторінку довідника. Наберіть [[ — поле веде сходинками (розділ → тип → сторінка), а хибний ключ підкреслить хвилею.
[[!sandbox/S0oh1hBm]] Живий приклад окремим рядком — саме вікно результату. Той самий ключ зі знаком !: наберіть [[! і дійдіть сходинками до потрібної сторінки, список покаже її приклади.
[MDN](https://developer.mozilla.org) Посилання на чужий сайт.
![Схема каскаду](https://site.com/схема.png) Картинка. Опис обов'язковий: його читають пошуковик і незрячі.
Задайте `display: grid` контейнеру Код усередині речення.
```css
.card { display: grid }
```
Код блоком. Мова після трьох лапок вмикає підсвітку.
- Походження
1. Походження
Перелік: маркований і нумерований.
- [ ] дописати приклади
- [x] перевірити в Firefox
Перелік завдань із галочками. Пробіл у порожніх дужках обов'язковий.
> Порядок важить лише за рівної ваги. Цитата на всю ширину абзацу.
Специфічність
: вага селектора; більша перемагає
Список означень: термін, а під ним пояснення з відступом. Пробіл після двокрапки обов'язковий.
Каскад має три критерії[^1]
[^1]: Походження, специфічність, порядок.
Виноска: номер у тексті, примітка внизу сторінки. Без згадки [^1] у тексті примітка не з'явиться.
Відповідь: ||сорок два|| Ховає те, що між рисками: читач бачить на цьому місці розмиту пляму, а решта речення лишається звичайною. Клац — і текст відкрито.
|| Показати рішення
Задайте контейнеру `display: grid`.
||
Ховає цілі абзаци. На сторінці видно лише підпис із першого рядка («Показати рішення»), решта розгортається клацанням по ньому. Закривні риски — окремим рядком.
Порожній рядок Новий абзац. Щоб перенести рядок усередині абзацу, поставте \ в його кінці.

Увійдіть — коментар з'явиться одразу, без капчі й очікування перевірки.

Правка
Зворотний зв'язок
Вхід