Как задать высоту span в CSS: преодолеваем ограничения inline
Быстрый ответ
Возможность установки фиксированной высоты для тэга <span> появляется при изменении его отображения со стандартного inline на inline-block или block:
<span style="display: inline-block; height: 50px;">Текст</span>
После такого преобразования высота элемента <span> замораживается на уровне 50 пикселей.
Свойство display влияет на структуру страницы в CSS. Параметр inline-block объединяет в себе строчный тип inline с возможностью задавать размеры, как у block.

Обеспечиваем кроссбраузерность
Для обеспечения исправной работы для пользователей IE6/7 стоит применить звёздный хак или свойства zoom и display:
span {
display: inline-block;
*display: inline;
zoom: 1; /* Следует учесть и IE6/7 */
}
Возможно также использовать свойство line-height для вертикального центрирования однострочного текста или padding, чтобы визуально увеличить пространство внутри span.
Визуализация
Можно представить установку высоты элементу <span> как процесс примерки наглядно подходящих джинсов:
span.jeans {
display: inline-block; /* Модель джинсов */
height: 50px; /* Идеальная посадка */
}
<span class="jeans">👖</span>
Точно также, как и джинсы нуждаются в адаптации к форме тела, элементу span требуется изменение свойства display для достижения желаемой высоты.
Настройки для специфических ситуаций
Существуют ситуации, когда display: inline-block будут некорректно смотреться. Рассмотрим альтернативные решения:
Изучаем флекс-макеты
Чтобы контролировать высоту тэга span, можно поместить его внутрь флекс-контейнера:
.flex-container {
display: flex; /* "Ощутим силу!"🎵 */
align-items: stretch; /* Наладим полную высоту! */
}
.flex-container span {
flex: 1; /* Цитата Oprah: "You get a flex! You get a flex! Everybody gets a flex!" */
}
Осваиваем макет CSS Grid
В CSS Grid для элементов span присутствуют прецизионные настройки выравнивания:
.grid-container {
display: grid; /* Высший уровень аккуратности с 2017 года */
}
.grid-container span {
grid-area: 1 / 1 / 2 / 3; /* Это не игровые команды */
}
Благодаря возможности двумерного позиционирования, макет Grid стал прекрасным выбором.
Обеспечиваем читаемость кода для устаревших браузеров
Замена display на block может затруднить понимание вашего кода, ведь span обычно используется встроенным. Если вам требуется блочная модель, лучше выбрать div тэг.
Учитываем все стороны доступного дизайна
Внесение изменений в свойства display, height и line-height может оказывать влияние на читабельность текста. Важно тщательно протестировать стили на разнообразных устройствах!
Полезные материалы
- height – CSS: Каскадные таблицы стилей | MDN
- HTML span тег
- Верстка текста на веб-страницах в соответствии с сеткой базовых линий – A List Apart
- Глубокое погружение в свойство display: Двойное значение свойства display — Smashing Magazine
- CSS значения и единицы измерения – Учебник по веб-разработке | MDN


