Начинающие разработчики часто задаются вопросом: Как вертикально выравнивать изображения в тексте?
Давайте начнём с небольшого примера. Строка с текстом и небольшим изображением в виде квадрата.

Выравнивание изображение с помощью vertical-align

Теперь давайте взглянем на 6 основных линий относительно которых выполняется вертикальное выравнивание. На изображениях эти линии выделены красным цветом.

Линии текста

1. Top line — верхняя линия строки

Выравнивание изображение с помощью vertical-align

2. Text-top line — линия над текстом, включая все символы над ним (символ ударения и т.п.). Верхняя граница кегельной площадки шрифта.

Кегельной площадкой называется прямоугольная область, на которой базируется каждый символ. Высота этой площадки называется кеглем шрифта.

Выравнивание изображение с помощью vertical-align

Top line и text-top line на первый взгляд выглядят одинаково. Однако бывают ситуации когда top line располагается выше чем text-top line. Например, когда в тексте есть изображение, по высоте превосходящее кегель шрифта.

Выравнивание изображение с помощью vertical-align

3. Middle line — средняя линия, проходящяя на уровне половины высоты буквы «x».

Выравнивание изображение с помощью vertical-align

4. Baseline — основная линия текста. Воображаемая линия на которой «сидят» все буквы.

Выравнивание изображение с помощью vertical-align

5. Text-bottom line — линия под текстом, включая нижние выносные элементы букв (например «j», «у», «ф»). Нижняя граница кегельной площадки шрифта.

Выравнивание изображение с помощью vertical-align

6. Bottom line — нижняя линия строки.

Выравнивание изображение с помощью vertical-align

Выравнивание изображений по умолчанию

По умолчанию, нижняя граница изображения совпадает с baseline, если к изображению не применяются внешние отступы. На примере ниже у изображения присутствует нижний внешний отступ, равный 5px.

Выравнивание изображение с помощью vertical-align

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

Для вертикального выравнивания с помощью CSS используется свойство vertical-align. Давайте рассмотрим различные варианты применения этого свойства.

Top

Верхняя граница изображения совпадает с верхним краем строки.

img {vertical-align: top}

Выравнивание изображение с помощью vertical-align

Text-top

Верхняя граница изображения совпадает с верхней границей кегельной площадки шрифта.

img {vertical-align: text-top}

Выравнивание изображение с помощью vertical-align

Middle

Вертикальная середина изображения выравнивается относительно средней линии текста.

img {vertical-align: middle}

Выравнивание изображение с помощью vertical-align

Baseline

Несмотря на то, что изображения по умолчанию выравниваются относительно baseline, вы можете задать такое выравнивание вручную.

img {vertical-align: baseline}

Выравнивание изображение с помощью vertical-align

Text-bottom

Нижняя граница изображения совпадает с нижней границей кегельной площадки шрифта.

img {vertical-align: text-bottom}

Выравнивание изображение с помощью vertical-align

Bottom

Нижняя граница изображения совпадает с нижним краем строки.

img {vertical-align: bottom}

Выравнивание изображение с помощью vertical-align

Sub

Нижняя граница изображения совпадает с основной линией текста в нижнем регистре.

img {vertical-align: sub}

Выравнивание изображение с помощью vertical-align

Super

Нижняя граница изображения совпадает со основной линией (baseline) текста в верхнем регистре.

img {vertical-align: super}

Выравнивание изображение с помощью vertical-align

Значение в различных единицах

Значения свойства vertical-align также можно задавать в различных единицах, например в %. Положительные значения поднимают изображение относительно высоты строки (line-height), отрицательные — опускают.

img {vertical-align: 30%}

Выравнивание изображение с помощью vertical-align

img {vertical-align: -30%}

Выравнивание изображение с помощью vertical-align

Значения заданные например в px или em выравнивают изображение не относительно высоты строки, а относительно основной линии текста.

Оригинал: Aligning inline images with the vertical-align property

14 комментариев к статье «Выравнивание изображений с помощью vertical-align»:

  1. Спасибо за обзор. А как с кроссбраузерностю всех этих способов? Радует то, что все они валидны.

  2. Alex:

    Zodios, небольшие различия в выравнивании у браузеров есть, но они не существенны.

  3. про проценты я что то забыл, спасибо за напоминание!

  4. А как выровнять изоображение по горизонтали, если картинка прописана не в стилях css, а в index.html.

  5. Alex:

    Виктор. Эта статья как раз описывает выравнивание изображений, которые находятся в тексте, т.е. используется тег img.

  6. Очень часто встречаюсь с этой проблемой, и уходит много времени на исправление, спасибо за информацию, думаю сейчас это не станет для меня трудностью.

  7. SMM:

    ета проблема встречается очень часто. я тоже сталкивался с ней, с приминением vertical-align все стало на свои места.

  8. Спасибо за подробное объяснение.Пригодицца обязательно.

  9. [...] Выравнивание изображений с помощью vertical-align Начинающие разработчики часто задаются вопросом: Как вертикально выравнивать изображения в тексте? Давайте начнём с небольшого примера. Строка с текстом и небольшим изображением в виде квадрата… [...]

  10. «Zodios, небольшие различия в выравнивании у браузеров есть, но они не существенны.»

    Нихрена себе несущественны! А как насчёт позиционирования элементов формы, особенно чекбоксы и радио-кнопки? Там в разных браузерах такие сдвиги…

  11. Alex:

    С элементами форм, согласен, посложнее будет. Я же имел ввиду примеры с изображениями.

  12. Спасибо. :) Пригодилось.

  13. Спасибо за подробное объяснение. 2 дня парился с этим

Оставь комментарий: