Перейти к содержимому
Забрать бесплатно
Модификации выключены. Так эта страница выглядит на обычной Тильде.

Как выровнять абзац по ширине и не сломать его в Chrome

12 августа 2026 3 МИН КОМАНДА MODKOD

`text-align: justify` даёт ровные края, но не делает типографику аккуратной сам по себе. В узкой колонке браузер растягивает пробелы, длинные слова выходят наружу, а элемент Zero Block с автоматической шириной может пересчитать геометрию иначе. Поэтому выравнивание включают только у выбранных длинных абзацев, задают правильный язык и переносы и не смешивают его с autowidth.

✓ ПРОВЕРЕНО 12 августа 2026 Zero Block хранит режим автоматической ширины в data-field-textfit-value и отдельно пересчитывает размеры шрифта и межстрочный интервал на адаптивах — t396__fixElementsFontSizes, t396__fixElementsLineHeights и data-field-textfit-value в tilda-zero-1.1.min.js

Когда выравнивание по ширине уместно

Justify хорошо работает в достаточно широкой колонке с несколькими строками. Он может подойти для редакционной статьи, описания услуги или цитаты. Он плохо подходит для заголовков, карточек с двумя строками, кнопок, адресов и коротких подписей.

Главный критерий не «ровный правый край», а спокойный ритм пробелов. Если в строке появились заметные белые реки, колонку лучше расширить, уменьшить кегль или вернуться к выравниванию влево.

Минимальный безопасный набор

Назначьте выбранному текстовому элементу свой класс, например mk-justify. Правило должно действовать на текст внутри этого элемента, а не на всю страницу:

.mk-justify .tn-atom {
  text-align: justify;
  hyphens: auto;
  overflow-wrap: break-word;
}

На странице должен быть корректный язык документа, например lang="ru", либо язык надо указать у самого текстового фрагмента. Без языка автоматические переносы не знают, по каким правилам делить слова.

Это основа, а не обещание одинаковой картинки во всех браузерах. Словари переносов, метрики шрифта и доступная ширина отличаются. Проверяется читабельность и отсутствие вылета, а не пиксельное совпадение каждой строки.

Почему текст «улетает» в Chrome

Zero Block умеет автоматически подбирать ширину текстового элемента. Режим хранится в data-field-textfit-value, а рантайм отдельно исправляет размер шрифта и межстрочный интервал на брейкпоинтах.

Если одновременно попросить браузер растянуть строку по ширине и попросить Тильду вычислить ширину из содержимого, возникает замкнутая задача: содержимое зависит от ширины, а ширина — от содержимого. Результат может отличаться между движками и моментами загрузки шрифта.

Поэтому MOD-183 отказывается от запуска на элементах с режимом автоматической ширины, а не пытается исправлять их новым font-size или шириной.

Чего не надо делать

Не используйте глобальные правила вроде:

.t396__elem { text-align: justify !important; }

Они затронут заголовки, кнопки, цены, меню и служебные подписи. !important также затруднит настройку отдельных адаптивов в редакторе.

Не вставляйте невидимые пробелы вручную для красивого края. Они ломают копирование, поиск, перенос на другом устройстве и работу скринридера. Не расставляйте мягкие переносы в каждом слове до проверки автоматических — текст клиента изменится, и ручная разметка быстро устареет.

Что проверить на четырёх ширинах

Подготовьте один настоящий абзац клиента, а не «рыбу», и проверьте:

  • широкую и узкую колонку;
  • русский и английский фрагмент;
  • длинную ссылку или артикул;
  • неразрывное число с единицей измерения;
  • загрузку основного и запасного шрифта;
  • Chrome, Safari и Firefox;
  • все рабочие брейкпоинты проекта.

Если один URL создаёт горизонтальную прокрутку, дайте ему отдельное правило переноса или сократите отображаемую подпись. Если последняя строка растягивается, проверьте, не добавлено ли отдельное text-align-last: justify: для обычного абзаца оно чаще всего не нужно.

Как передать клиенту

Запишите, какие классы можно использовать и на каких типах текста. Простая инструкция выглядит так: «класс ставим только на длинный текст; у элемента выключаем автоматическую ширину; после замены языка проверяем переносы».

Так дизайнерская настройка остаётся управляемой. Клиент может менять текст в редакторе, не касаясь CSS, а модификация не вмешивается в весь сайт ради одного ровного абзаца.

Вопросы по этой статье 4

Колонка слишком узкая или браузеру не разрешены переносы для языка текста. Он растягивает немногочисленные пробелы, чтобы заполнить всю строку.