
В CSS выравнивание текста определяется свойствами, которые напрямую влияют на горизонтальное и вертикальное расположение контента внутри блоков. text-align позволяет управлять положением текста по горизонтали: left, center, right или justify. Для точной вертикальной центровки часто используют сочетание line-height и высоты блока.
Современные подходы включают использование flexbox и CSS Grid, которые позволяют одновременно выравнивать текст по горизонтали и вертикали. Flexbox применяют через свойства display: flex, justify-content и align-items, а grid – через display: grid и place-items.
Для управления поведением текста при ограниченной ширине блока важны свойства white-space и word-wrap. Они позволяют предотвратить нежелательные разрывы строк и управлять переносом слов, особенно в адаптивных макетах и блоках с динамическим контентом.
Абсолютное позиционирование текста с помощью position: absolute и комбинации top, left, transform позволяет точно размещать текст даже в сложных макетах. Этот метод используют для кнопок, баннеров и элементов интерфейса, где важно точное соответствие дизайну.
Выравнивание текста по горизонтали с помощью text-align

Свойство text-align управляет расположением текста внутри блочного элемента по горизонтали. Значение left выравнивает текст по левому краю блока, right – по правому. center центрирует текст относительно ширины контейнера, а justify растягивает строки так, чтобы они занимали всю ширину блока, выравнивая текст по обоим краям.
Для блоков с фиксированной шириной text-align: justify особенно полезно, когда требуется одинаковый интервал между словами и аккуратный визуальный ряд. В адаптивных блоках рекомендуется комбинировать justify с word-spacing для контроля расстояний между словами.
Если внутри блока есть строчные элементы или встроенные теги, они наследуют выравнивание родителя, но при необходимости можно задать text-align отдельно для дочерних элементов. Это позволяет контролировать горизонтальное расположение заголовков, абзацев и ссылок независимо друг от друга.
Для многострочного текста с разными выравниваниями можно использовать комбинацию text-align и direction. Например, direction: rtl совместно с text-align: left меняет визуальное расположение текста для языков с правосторонним письмом.
Вертикальное выравнивание текста с помощью line-height

Свойство line-height определяет высоту строки и используется для вертикальной центровки текста в блоке. При равенстве line-height и высоты блока текст выравнивается по центру вертикально. Этот метод эффективен для однострочных элементов, кнопок и заголовков.
Рекомендации по использованию:
- Для фиксированной высоты блока: установите line-height равной высоте блока.
- Для многострочного текста: увеличьте line-height на 10–30% выше стандартного, чтобы обеспечить читаемость.
- При адаптивной верстке: используйте относительные единицы, например em или rem, чтобы вертикальное выравнивание сохранялось на разных разрешениях.
Пример комбинации для кнопки:
- Высота блока: 50px.
- line-height: 50px.
- Текст автоматически центрируется по вертикали.
Если блок содержит несколько элементов с разной высотой, line-height применяют к каждому элементу отдельно. Для динамических блоков с переменной высотой используют гибридный подход: line-height совместно с flexbox или display: table-cell для точного центрирования.
Использование flexbox для центровки текста внутри блока

Flexbox позволяет выравнивать текст по горизонтали и вертикали одновременно. Для этого родительскому блоку задают display: flex. Горизонтальное выравнивание управляется через justify-content, вертикальное – через align-items.
Практические значения:
- justify-content: center – текст располагается по центру по горизонтали.
- align-items: center – текст центрируется по вертикали внутри блока.
- justify-content: flex-start или flex-end – выравнивание слева или справа.
- align-items: flex-start или flex-end – выравнивание по верхнему или нижнему краю.
Для многострочного текста и вложенных элементов можно использовать flex-direction: column. Это меняет направление оси и позволяет управлять вертикальным расположением каждой строки.
Flexbox особенно полезен для адаптивных блоков: текст автоматически центрируется независимо от ширины и высоты контейнера, что упрощает верстку кнопок, карточек и баннеров.
Применение grid для точного позиционирования текста

CSS Grid позволяет управлять как горизонтальным, так и вертикальным положением текста с высокой точностью. Родительскому блоку задают display: grid, а для размещения текста используют place-items или отдельные свойства justify-items и align-items.
Практические значения для выравнивания текста:
- place-items: center – текст выравнивается по центру по обеим осям.
- justify-items: start | end | center – управление горизонтальным расположением внутри ячейки.
- align-items: start | end | center – управление вертикальным расположением текста внутри ячейки.
Для многострочного текста или сложных макетов используют grid-template-rows и grid-template-columns, чтобы задать размеры ячеек и контролировать точное положение контента. Grid особенно удобен, когда требуется выровнять текст относительно других элементов в блоке с равномерными отступами.
В сочетании с grid-gap можно задавать промежутки между ячейками, сохраняя выравнивание текста по оси без дополнительных пустых блоков или маргинов.
Контроль переноса строк и пробелов с white-space и word-wrap

Свойства white-space и word-wrap позволяют управлять переносом текста и пробелами внутри блока. white-space контролирует, как браузер обрабатывает пробелы, табуляции и перенос строк, а word-wrap предотвращает выход слов за пределы блока.
Основные значения white-space:
| Значение | Описание |
|---|---|
| normal | Стандартный перенос строк и сжатие пробелов. |
| nowrap | Запрет переноса строк, текст остается в одной линии. |
| pre | Сохранение всех пробелов и переносов, как в исходном коде. |
| pre-wrap | Сохраняет пробелы, строки переносятся по ширине блока. |
Свойство word-wrap (или overflow-wrap) управляет разрывом длинных слов:
| Значение | Описание |
|---|---|
| normal | Длинные слова могут выходить за пределы блока. |
| break-word | Длинные слова автоматически переносятся на новую строку, не нарушая макета. |
Для адаптивного текста рекомендуется использовать white-space: pre-wrap совместно с word-wrap: break-word. Это обеспечивает сохранение пробелов и корректный перенос слов на узких экранах без горизонтальной прокрутки.
Выравнивание текста внутри блока с абсолютным позиционированием

Абсолютное позиционирование позволяет точно размещать текст внутри блока относительно ближайшего родителя с position: relative. Для текста используют комбинацию top, left, right, bottom и transform для центровки.
Примеры практического применения:
- Центровка по горизонтали и вертикали: top: 50%, left: 50%, transform: translate(-50%, -50%).
- Выравнивание по верхнему краю: top: 0, left: 50%, transform: translateX(-50%).
- Выравнивание по нижнему краю: bottom: 0, right: 50%, transform: translateX(50%).
Для блоков с динамическим содержимым рекомендуется использовать абсолютное позиционирование совместно с max-width и text-align. Это предотвращает выход текста за пределы блока и сохраняет заданное выравнивание при изменении размера контейнера.
Абсолютное позиционирование особенно полезно для элементов интерфейса: кнопок, баннеров, модальных окон, где важно точное соответствие дизайну и визуальное центрирование текста независимо от размера блока.
Вопрос-ответ:
Как центрировать текст по горизонтали внутри блока?
Для горизонтального выравнивания текста используют свойство text-align. Значение center помещает текст точно по центру блока, left и right выравнивают текст по левому или правому краю. Если блок содержит несколько элементов, каждый из них наследует выравнивание родителя, но можно задать text-align отдельно для дочерних элементов.
Как выровнять текст вертикально с помощью line-height?
Вертикальная центровка достигается, когда line-height равен высоте блока. Для однострочного текста достаточно указать одинаковое значение. Для многострочного текста рекомендуют увеличивать line-height на 10–30% выше стандартного, чтобы строки не сливались и текст оставался читабельным.
Можно ли использовать flexbox для выравнивания текста в нескольких строках?
Да. У родительского блока устанавливают display: flex. Горизонтальное выравнивание контролируется через justify-content, вертикальное — через align-items. Для многострочного текста можно задать flex-direction: column, чтобы каждая строка располагалась по вертикальной оси и оставалась выровненной относительно блока.
Какие свойства помогают контролировать перенос длинных слов и пробелов?
Свойство white-space управляет сохранением пробелов и переносом строк. Значения nowrap и pre предотвращают перенос, pre-wrap сохраняет пробелы и позволяет переносить строки. Для предотвращения выхода слов за пределы блока используют word-wrap: break-word или overflow-wrap: break-word.
Когда целесообразно использовать абсолютное позиционирование для текста?
Абсолютное позиционирование применяют для точного размещения текста внутри блока, особенно если требуется центровка по вертикали и горизонтали независимо от других элементов. Используют top, left, transform: translate(-50%, -50%) для центрирования или комбинируют с max-width и text-align для предотвращения выхода текста за границы блока.
Как совместить горизонтальное и вертикальное выравнивание текста внутри блока с переменной высотой?
Для блоков с переменной высотой удобнее использовать flexbox. Родительскому элементу задают display: flex, justify-content: center для горизонтального выравнивания и align-items: center для вертикального. Такой подход автоматически центрирует текст независимо от высоты блока. Альтернатива — grid с place-items: center, что также позволяет точно расположить текст по обеим осям. Если используется абсолютное позиционирование, комбинация top: 50%, left: 50% и transform: translate(-50%, -50%) обеспечивает центрирование, но требует контроля размеров блока, чтобы текст не выходил за пределы контейнера.
