Гид по технологиям

Вертикальное выравнивание в CSS: полное руководство по vertical-align

7 min read CSS Обновлено 10 Apr 2026
vertical-align в CSS: полное руководство
vertical-align в CSS: полное руководство

Ноутбук с отображённым CSS-кодом

Вертикальное выравнивание в CSS часто вызывает вопросы: когда работает vertical-align, какие значения использовать и почему элемент не сдвигается так, как ожидается. В этом руководстве я переведу и расширю исходный материал, добавлю практические советы, тесты приёмки и список альтернатив — всё это в понятной, краткой форме.

Что такое vertical-align и где он работает

vertical-align — это свойство CSS для управления вертикальным положением inline-уровневых элементов и ячеек таблиц ( и ). Оно не влияет на большинство блочных элементов (div, h1, p и т. п.), пока вы явно не измените их display на inline или inline-block.

Короткое определение: вертикальная линия базовой строки (baseline) — это воображаемая линия, по которой выстраиваются буквы и inline-элементы внутри строки. vertical-align сдвигает элемент относительно этой строки или относительно самого родителя (в зависимости от значения).

Важно: vertical-align действует внутри line box (контейнера строки). Если элементы находятся в разных строках, vertical-align не изменит их относительное расположение.

Основные типы значений vertical-align

vertical-align принимает три типа значений: ключевые слова, проценты и длины. Каждое значение определяет позицию baseline целевого элемента относительно baseline родителя или относительно высочайшего/низочайшего элемента в строке.

Основные значения:

  • baseline — элемент выровнен по базовой линии родителя.
  • top — верх целевого элемента выровнен с верхом самого высокого элемента в текущей строке.
  • middle — центр целевого элемента выровнен по вертикали в строке (не буквально geometric center для всех случаев, но близко к центру line box).
  • bottom — низ целевого элемента выровнен с низом самого низкого элемента в строке.
  • sub — позиция для нижнего индекса (subscript baseline) родителя.
  • super — позиция для верхнего индекса (superscript baseline) родителя.
  • text-top — выровнять по верху шрифта родителя (верхняя граница шрифта).
  • text-bottom — выровнять по низу шрифта родителя.
  • процент (например, 20%) — базовая линия целевого элемента смещается относительно baseline родителя на указанный процент высоты line box; может быть отрицательным.
  • длина (например, 10em, 20px) — базовая линия смещается на указанную длину; также допускаются отрицательные значения.

Базовый HTML-шаблон (пример)

  
  
  
     
     
     
    
     
    
   Document  
  
    
  
    
Google Search  image of the forest
Scenery Discription
Forest Lorem ipsum dolor sit amet.
Ocean Lorem ipsum dolor sit amet.

Этот код создаёт простую страницу с ссылкой, изображением, встраиваемым видео и таблицей.

Как вертикально выровнять текст

По умолчанию большинство текстовых элементов (h1–h6, p, li и т. п.) являются блочными. Их нельзя вертикально выровнять через vertical-align, пока вы не поменяете display на inline или inline-block.

Теги и — inline по умолчанию, поэтому поддерживают vertical-align. Чтобы выровнять текст, назначьте нужное значение vertical-align.

Использование vertical-align: top для текста

Этот стиль выровняет верх текста по верху самого высокого элемента в строке.

Текст с vertical-align: top рядом с медиа

Использование процентного значения для текста

vertical-align: -50% сдвинет базовую линию текста на 50% вниз относительно базовой линии родителя. Это полезно для тонкой настройки компенсации соотношения высот соседних inline-элементов.

Текст с vertical-align: -50% смещён ниже базовой линии

Использование длины для текста

vertical-align с длиной (например, 90px) перемещает базовую линию на фиксированное расстояние. Это удобно, если нужен жёсткий, предсказуемый сдвиг.

Текст с vertical-align: 90px смещён вверх

Совет: длины зависят от размера шрифта и плотности интерфейса. Для адаптивных интерфейсов предпочитайте em/rem или проценты.

Как вертикально выровнять изображения

Тег — inline-элемент. vertical-align отлично работает с изображениями.

Использование vertical-align: super для изображения

super поднимает изображение к верхней (superscript) базовой линии родителя.

Изображение с vertical-align: super поднято над строкой

Использование процентного значения для изображения

25% сдвигает базовую линию изображения на четверть высоты line box вверх.

Изображение с vertical-align: 25% смещено вверх

Использование длины для изображения

5px поднимет базовую линию изображения на 5 пикселей относительно baseline родителя.

Изображение с vertical-align: 5px чуть выше базовой линии

Как вертикально выровнять встроенные медиа (видео, iframe)

Видео и iframe в HTML обычно являются inline-элементами (если к ним не применён display:block). vertical-align работает так же, как с изображениями.

Использование sub для видео

sub опустит видео к нижней (subscript) базовой линии родителя.

Видео с vertical-align: sub опущено ниже базовой линии

Использование процентного значения для видео

-25% опустит базовую линию видео на 25% ниже baseline родителя.

Видео с vertical-align: -25% опущено ниже строки

Использование длины для видео

-5px опустит базовую линию на 5 пикселей.

Видео с vertical-align: -5px опущено на 5px

Вертикальное выравнивание в таблицах

Ячейки таблицы (, ) ведут себя как inline/inline-block относительно содержимого. Поэтому vertical-align применим к содержимому ячейки и задаёт позицию внутри высоты строки.

top для данных таблицы

Устанавливает высоту ячейки 40px и выравнивает содержимое по верху.

Таблица: данные выравнены по верху ячеек

middle для данных таблицы

Центрирует содержимое ячейки по вертикали.

Таблица: данные выровнены по центру по вертикали

bottom для данных таблицы

Выровняет содержимое по низу ячейки.

Таблица: данные выровнены по низу ячеек

Когда vertical-align не поможет

Альтернативы vertical-align

  1. Flexbox: идеально для центрирования по вертикали и горизонтали в контейнере.
  1. Grid: мощнее при создании сложных макетов.
  1. line-height: простое вертикальное центрирование однострочного текста внутри элемента.

  2. transform: translateY(…) для визуального сдвига (удобно для анимаций).

Выбор метода зависит от задачи: для выравнивания inline-элементов рядом друг с другом vertical-align удобен; для выравнивания содержимого внутри блока лучше flex/grid.

Ментальные модели и эвристики

Быстрая шпаргалка (cheat sheet)

Ролевые чеклисты

Разработчик front-end:

Дизайнер:

QA-инженер:

Критерии приёмки

Мини-методология для отладки выравнивания

  1. Убедиться, что элементы находятся в одном line box.
  2. Включить границы и фон для отладки (outline, background-color).
  3. Проверить display и высоты соседних элементов.
  4. Попробовать временно заменить vertical-align на transform: translateY(…) для проверки визуального результата.

Примеры тест-кейсов

Совместимость и миграция

vertical-align поддерживается во всех современных браузерах и старых версиях. Однако поведение вокруг baseline и text-top/text-bottom может выглядеть немного иначе при разных шрифтах и способах рендеринга. Для кроссбраузерности тестируйте ключевые комбинации в целевых браузерах и при разных DPI.

Риск и способы снижения

Небольшая Decision-диаграмма (Mermaid)

Короткая сводка по использованию

Глоссарий — одно предложение на термин

Контрольный список при сдаче задачи

Итог

vertical-align — мощный, но специфичный инструмент для выравнивания inline-элементов и содержимого ячеек таблицы. Для большинства современных макетов комбинируйте его с display: inline-block и используйте flexbox или grid там, где требуется более предсказуемое вертикальное центрирование.

Воспользуйтесь приведёнными чеклистами и тест-кейсами при разработке и отладке. Это ускорит поиск причин, почему элемент не выстраивается так, как вы ожидали.

Таблица: пример выравнивания в разных режимах

Автор
Редакция

Похожие материалы

Папка автозагрузки Windows — найти и управлять
Windows

Папка автозагрузки Windows — найти и управлять

Отключить исчезновение окон в macOS Sonoma
macOS

Отключить исчезновение окон в macOS Sonoma

Отключить клавишу Globe на Mac
macOS

Отключить клавишу Globe на Mac

Отключить миниатюры скриншотов на Mac
macOS

Отключить миниатюры скриншотов на Mac

RAW в JPEG на Mac — через Preview
Фото

RAW в JPEG на Mac — через Preview

Удалить фон с фото на Mac — быстро и без программ
macOS

Удалить фон с фото на Mac — быстро и без программ