Зачем нужны логические свойства: интернационализация
Узнайте, почему физические свойства CSS нарушают макеты RTL и как логические свойства это исправляют.
«Зачем нужны логические свойства: интернационализация» — бесплатный урок CSS Academy на CoddyKit. Это урок 1 из 4. Ты можешь прочитать весь урок бесплатно ниже — а потом практиковать его прямо в браузере с встроенным редактором кода и ИИ-репетитором 24/7. Это часть пути обучения CSS Academy, и твой прогресс синхронизируется между веб-версией и приложением CoddyKit. Курс CSS Academy содержит 4 уроков всего.
Проблема физических свойств
Традиционный CSS использует физические направления: top, right, bottom, left. Для языков с направлением слева направо (LTR), например английского, это удобно, но такой подход нарушается в языках с направлением справа налево (RTL), например арабском и иврите, а также в системах письма с вертикальным направлением, например в традиционном японском.
Физические и логические свойства
Сравним:
- Физические: top, right, bottom, left — фиксированы относительно экрана
- Логические: block-start, block-end, inline-start, inline-end — зависят от режима письма
Блочная и строчная оси
В каждой системе письма есть:
- Блочная ось: направление, в котором располагаются блоки текста (вертикальное в LTR/RTL, горизонтальное при вертикальном письме)
- Строчная ось: направление, в котором текст идёт внутри строки (горизонтальное в LTR/RTL, вертикальное при вертикальном письме)
Макет LTR и RTL
В LTR (английский): inline-start = left, inline-end = right. В RTL (арабский): inline-start = right, inline-end = left. Логические свойства автоматически адаптируются без медиазапросов и JavaScript.
Реальная цена физических свойств
Для сайта, созданного с использованием физических свойств, потребуется отдельная таблица стилей с переопределениями для RTL или переопределения каждого свойства margin, padding, border, position и выравнивания текста, которое должно измениться на противоположное. Это вдвое увеличивает объём работ по сопровождению.
Режим письма влияет на оси
Если задано writing-mode: vertical-rl (вертикальное письмо, например в японском или корейском), блочная ось становится горизонтальной, а строчная — вертикальной. Логические свойства адаптируются автоматически.
<div class="vertical-text">縦書きテキスト Vertical Text</div>
Использование в современном CSS
Все основные браузеры поддерживают логические свойства. Спецификация CSS теперь рекомендует использовать логические свойства для любого свойства, связанного с направлением, которое может измениться из-за режима письма или направления текста.
Практическое значение
Одна кодовая база с правильно применёнными логическими свойствами поддерживает LTR, RTL и вертикальное письмо без дублирования. CSS просто следует значениям direction и writing-mode корневого элемента.
dir="rtl" в HTML
Задавайте направление письма в HTML, а не только в CSS:
<div dir="rtl" lang="ar" class="rtl-demo">هذا نص من اليمين إلى اليسار</div>
Постепенное внедрение
Не нужно сразу переписывать весь CSS. Начните использовать логические свойства в новых компонентах. Со временем заменяйте физические свойства в компонентах, относящихся к областям, чувствительным к интернационализации.
Свойство CSS direction
Свойство CSS direction (ltr или rtl) влияет на направление строчного потока. Оно работает вместе с writing-mode и задаёт полный контекст системы письма элемента.
Быстрая проверка
Почему физические свойства CSS, например margin-left, создают проблемы в макетах RTL?
Итоги
Логические свойства CSS используют блочную и строчную модель вместо физических top/right/bottom/left. Благодаря этому одна таблица стилей работает для LTR, RTL и систем письма с вертикальным направлением. Свойства direction и writing-mode задают контекст, к которому логические свойства адаптируются автоматически.
Изучай CSS с ИИ-репетитором — бесплатно
Пиши и запускай код прямо в браузере, получай мгновенную помощь от ИИ-репетитора 24/7 и продолжи учиться на сайте или в приложении.
- Курсы
- 40
- Уроки
- 159
Часто задаваемые вопросы
Урок «Зачем нужны логические свойства: интернационализация» бесплатный?
Да — полный текст урока «Зачем нужны логические свойства: интернационализация» бесплатно доступен здесь в веб-версии. Чтобы практиковать его интерактивно (встроенный редактор кода и ИИ-репетитор 24/7) и разблокировать остальной курс CSS Academy, подпишись на CoddyKit PRO. Курс CSS Academy содержит 4 уроков всего.
Чему я научусь в уроке «Зачем нужны логические свойства: интернационализация»?
Узнайте, почему физические свойства CSS нарушают макеты RTL и как логические свойства это исправляют. Ты практикуешь CSS Academy с помощью реального кода, который запускаешь прямо в браузере, и ИИ-репетитор 24/7 отвечает на твои вопросы во время урока.
Нужен ли мне опыт, чтобы начать CSS Academy?
Предыдущий опыт не требуется. CSS Academy на CoddyKit структурирован для всех уровней — от новичков до продвинутых, поэтому ты можешь начать отсюда или с самого начала и учиться в своем темпе. Это урок 1 из 4.
Сколько времени занимает урок «Зачем нужны логические свойства: интернационализация»?
Большинство уроков CoddyKit занимают около 5–10 минут. Каждый из них компактный и интерактивный, поэтому ты постоянно делаешь прогресс и продолжаешь с того же места в веб-версии и приложении.
Можно ли писать и запускать код в этом уроке CSS Academy?
Да. Каждый урок CSS Academy включает встроенный редактор кода, поэтому ты пишешь и запускаешь реальный код прямо в браузере и получаешь моментальную обратную связь от AI — локальная установка не требуется.
Все уроки этого курса
- Зачем нужны логические свойства: интернационализация
- Направления блочного и строчного потока
- Логические отступы и граница
- Логические свойства в RTL-макетах