
Центрирование текста в HTML можно выполнить с помощью атрибута align, однако этот способ считается устаревшим и не поддерживается в HTML5. Для корректной разметки рекомендуется использовать только CSS.
Самый простой метод – свойство text-align: center;, которое применяется к блочному контейнеру, содержащему текст. Оно центрирует весь встроенный контент внутри элемента, например заголовки, параграфы или ссылки.
Для вертикального выравнивания текста в контейнере удобнее использовать flexbox или grid. Например, комбинация свойств display: flex; justify-content: center; align-items: center; позволяет расположить текст по центру как по горизонтали, так и по вертикали.
При работе с кнопками, блоками или адаптивными элементами стоит учитывать, что text-align не повлияет на их расположение. В таких случаях лучше применять CSS-свойства выравнивания к самому контейнеру с помощью flex или grid, а не к тексту внутри.
Использование атрибута align в HTML

Атрибут align применялся в ранних версиях HTML для выравнивания текста и элементов. Например: <p align="center">Текст</p> размещал абзац по центру.
Поддерживаемые значения: left, right, center, justify. Они задавались непосредственно в теге и работали без подключения CSS.
В спецификации HTML5 атрибут признан устаревшим. Современные браузеры продолжают его интерпретировать, но использование рекомендуется только для работы с унаследованным кодом.
Для актуальных проектов следует применять CSS-свойство text-align, так как оно обеспечивает гибкость и совместимость.
Центрирование текста с помощью text-align

Свойство text-align управляет горизонтальным выравниванием текста внутри блочного контейнера. Для центрирования указывается значение center.
Пример кода:
p { text-align: center; }
Текст будет выровнен по центру относительно ширины элемента. При этом свойство применяется не к самому тексту, а к содержимому контейнера, в том числе к строкам текста и встроенным элементам.
Следует учитывать: если родительский элемент имеет ограниченную ширину, выравнивание будет происходить относительно этой области, а не всей страницы. Для центрирования текста в отдельном блоке рекомендуется задавать фиксированную или максимальную ширину контейнера и использовать margin: 0 auto; в сочетании с text-align: center;, когда внутри находятся элементы inline-block.
Выравнивание внутри блока с фиксированной шириной
Если блочный элемент имеет фиксированную ширину, например width: 400px;, то для центрирования текста используется свойство text-align: center;. Оно применяется к родительскому контейнеру, внутри которого расположен текст.
Пример:
<div style="width: 400px; border: 1px solid #000; text-align: center;">
Текст по центру блока
</div>
При работе с инлайновыми элементами (span, a, strong) центрирование также контролируется через text-align у контейнера. Для блочных элементов внутри фиксированного блока предпочтительнее использовать margin: 0 auto;, если нужно выровнять их по горизонтали.
Пример для вложенного блока:
<div style="width: 400px; border: 1px solid #000;">
<div style="width: 200px; margin: 0 auto; background: #eee;">Вложенный блок</div>
</div>
Такой подход разделяет выравнивание текста и элементов: текст регулируется text-align, а блочные элементы – через margin.
Применение flexbox для центрирования по горизонтали
Для размещения содержимого по центру горизонтально достаточно задать контейнеру display: flex и свойство justify-content: center. Элементы внутри займут центральное положение по основной оси.
Пример кода:
.container {
display: flex;
justify-content: center;
}
Если в контейнере несколько элементов, они будут выровнены по центру в строке. При необходимости задать перенос строк используйте flex-wrap: wrap, чтобы при ограниченной ширине элементы не выходили за границы.
Для точного контроля отступов комбинируйте margin и gap. Это упрощает создание симметричной сетки без дополнительной разметки.
Комбинация justify-content и align-items в flexbox

Для центрирования содержимого в контейнере с display: flex применяют сочетание justify-content и align-items. Первый параметр управляет выравниванием элементов по горизонтали, второй – по вертикали.
Чтобы добиться точного расположения блока по центру, используйте:
.container {
display: flex;
justify-content: center;
align-items: center;
}
justify-content: center помещает элементы в центр по оси X, а align-items: center выравнивает их по оси Y. В совокупности это решение даёт полный контроль над позицией вложенных элементов внутри контейнера.
Если контейнер имеет фиксированные размеры, комбинация этих свойств позволяет избежать дополнительных отступов и абсолютного позиционирования. Такой способ оптимален для построения адаптивных интерфейсов, где требуется сохранение пропорций при изменении размеров экрана.
Центрирование текста через grid layout

Grid layout предоставляет точный способ центрирования текста как по горизонтали, так и по вертикали без дополнительных обёрток.
Для простого центрирования достаточно следующих шагов:
- Задайте контейнеру display: grid;
- Используйте свойства justify-items и align-items для выравнивания содержимого;
- Для текста внутри нескольких элементов можно применять justify-content и align-content.
Пример CSS для центрирования одного параграфа:
.container {
display: grid;
height: 200px;
justify-items: center; /* горизонталь */
align-items: center; /* вертикаль */
}
Если требуется центрирование нескольких строк текста:
.multi-line-container {
display: grid;
height: 300px;
justify-content: center; /* горизонтальное выравнивание всего контента */
align-content: center; /* вертикальное выравнивание всего контента */
}
Особенности использования grid для текста:
- justify-items и align-items работают на отдельные элементы внутри контейнера;
- justify-content и align-content регулируют выравнивание всех элементов в контейнере;
- grid позволяет комбинировать центрирование с позиционированием нескольких блоков без вложенных контейнеров;
- для адаптивных макетов можно использовать minmax и fr-единицы вместе с grid, чтобы текст оставался центрированным при изменении размеров окна.
Использование grid layout упрощает контроль над выравниванием текста в сложных структурах и снижает необходимость в дополнительном CSS для центрирования.
Вопрос-ответ:
Как сделать так, чтобы текст был по центру на странице без использования таблиц?
Для выравнивания текста по центру в современных веб-страницах используют CSS. Самый простой способ — задать для контейнера свойство text-align: center;. Например, если текст находится внутри тега
или
Можно ли центрировать текст вертикально внутри блока?
Да, вертикальное выравнивание можно реализовать с помощью Flexbox. Для родительского блока нужно установить display: flex; align-items: center; justify-content: center;. Свойство align-items: center отвечает за вертикальное центрирование, а justify-content: center — за горизонтальное. Такой метод работает независимо от количества строк текста и размеров блока.
Почему text-align: center не выравнивает картинки внутри div?
Свойство text-align влияет только на строчные и встроенные элементы, такие как текст или inline-блоки. Если внутри div находится блочный элемент, например другой div или картинка с display: block, text-align: center не сработает. В этом случае нужно использовать margin: 0 auto; у самого дочернего блока или применить Flexbox к родителю для центрирования.
Как центрировать текст и другие элементы вместе?
Для совместного центрирования текста и других элементов внутри блока лучше использовать Flexbox. Родительскому контейнеру задают display: flex; justify-content: center; align-items: center;. Это позволит разместить все дочерние элементы точно по центру как по горизонтали, так и по вертикали. Такой способ удобно применять, если внутри блока несколько разных элементов: текст, кнопки, изображения.
Есть ли различия между центрированием заголовков и абзацев?
По сути, различий нет: и заголовки, и абзацы — блочные элементы, поэтому свойство text-align: center применимо к любым тегам, которые содержат текст. Разница может возникнуть только из-за внешних отступов, размеров шрифта и стилей браузера, но принцип центрирования остаётся одинаковым. Если нужен точный контроль по вертикали и горизонтали, для любого текста лучше использовать Flexbox.
