Свойство
height
Задаёт высоту блока. По умолчанию высота подстраивается под содержимое, и задавать её явно приходится нечасто.
Пример
<div class="banner">Высота 6rem</div>.banner {
height: 6rem;
padding: 1rem;
background: lavender;
}Результат
Синтаксис
height: auto | <box-size> | <anchor-size()>;- Начальное значение
- auto
- Применяется к
- всем элементам, кроме строчных незаменяемых, колонок и групп колонок таблицы
- Наследуется
- нет
- Анимируется
- как длина или процент; ключевые слова — дискретно
- Вычисляемое значение
- процент или auto как указано, длины — в абсолютных единицах
Значения
auto- Высота по содержимому. Значение по умолчанию.
- Длина
- Точная высота:
200px,10rem,50vh. - Процент
- Процент от высоты содержащего блока — но только если она задана явно. Иначе процент считается как
auto. min-content,max-content,fit-content- Высота по содержимому. Для обычного блока с горизонтальным письмом все три дают то же, что
auto.
Как понять
Высота в вебе обычно следует за содержимым: чем больше текста, тем выше блок. Если задать высоту жёстко, а текста окажется больше — например, на узком экране или при крупном шрифте, — он вылезет за границы блока. Поэтому вместо height часто пишут min-height: блок будет не ниже заданного, но сможет расти.
С процентами есть ловушка: height: 100% работает, только если у родителя явная высота, а у того — у своего родителя, и так до корня. Проще использовать единицы экрана (vh, dvh) или раскладку флекса и сетки, которые растягивают элементы сами.
Примеры
Первый экран на всю высоту
min-height в единицах dvh учитывает панели мобильного браузера, которые появляются и прячутся при прокрутке:
<section class="hero">Заголовок первого экрана</section>.hero {
display: grid;
place-items: center;
min-height: 100vh;
min-height: 100dvh;
background: honeydew;
}Результат
Прокрутка внутри блока
Ограниченная высота и overflow: auto дают блок с собственной прокруткой:
<ul class="list">
<li>Пункт 1</li>
<li>Пункт 2</li>
<li>Пункт 3</li>
<li>Пункт 4</li>
<li>Пункт 5</li>
<li>Пункт 6</li>
<li>Пункт 7</li>
<li>Пункт 8</li>
</ul>.list {
height: 8rem;
overflow: auto;
border: 1px solid;
}Результат
Подсказки
height: 100%не работает, если у родителя высотаauto. Проверьте всю цепочку предков или замените на флекс, сетку илиdvh.100vhна телефонах бывает выше видимой области из-за панелей браузера. Пишите100dvh, а100vhоставьте строкой выше как запасной вариант.- Для текстовых блоков выбирайте
min-height, а неheight: иначе при увеличении шрифта текст вылезет за блок. - В логических свойствах высоте соответствует
block-size.
Поддержка браузерами
| Возможность | Chrome | Edge | Firefox | Safari | Chrome Android | Safari iOS | Samsung Internet | Opera |
|---|---|---|---|---|---|---|---|---|
| height | 1 | 12 | 1 | 1 | 18 | 1 | 1.0 | 7 |
| anchor-size | 125 | 125 | 147 | 26 | 125 | 26 | 27.0 | 111 |
| auto | 1 | 12 | 1 | 1 | 18 | 1 | 1.0 | 15 |
| fit-content | 46 | 79 | 94 1 | 11 2 | 46 | 11 3 | 5.0 | 33 |
| Функция fit-content() | нет | нет | 91 за флагом | нет | нет | нет | нет | нет |
| max-content | 46 | 79 | 66 4 | 11 | 46 | 11 | 5.0 | 44 |
| min-content | 46 | 79 | 66 4 | 11 | 46 | 11 | 5.0 | 44 |
| stretch | 138 5 | 138 6 | 146 с префиксом | 27 7 | 138 8 | 27 9 | 5.0 с префиксом | 122 10 |
Примечания
- Firefox: С префиксом -moz- — с версии 41.
- Safari: С префиксом -webkit- — с версии 9.
- Safari iOS: С префиксом -webkit- — с версии 9.
- Firefox: С префиксом -moz- — с версии 3.
- Chrome: С префиксом -webkit-fill-available — с версии 28.
- Edge: С префиксом -webkit-fill-available — с версии 79.
- Safari: С префиксом -webkit-fill-available — с версии 9.
- Chrome Android: С префиксом -webkit-fill-available — с версии 28.
- Safari iOS: С префиксом -webkit-fill-available — с версии 9.
- Opera: С префиксом -webkit-fill-available — с версии 15.
Яндекс Браузер работает на Chromium и поддерживает то же, что Chrome той же версии. Данные: MDN browser-compat-data 8.1.2, обновлено 17 сентября 2026 г.
Спецификация
См. также
- width Задаёт ширину блока
- box-sizing Определяет, что измеряют width и height — только содержимое или весь блок вместе с полями и рамкой.
- display Задаёт, каким блоком элемент становится снаружи и по каким правилам раскладывает своих потомков внутри — обычным потоком, флексом или сеткой.