Skip to content
On this page

vh, dvh, svh, ldvh — Новые велечины для улучшения верстки

Мне кажется, что каждый либо уже сталкивался, либо еще столкнётся с очень интересной проблемой связанной с адресной строкой браузера на мобильных телефонах. Не особо понятно, как ведет себя внутренняя высота экрана и блоки, у которых высота указана в 100vh.

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

vh — Viewport Height

Определение

Viewport Height (vh) — это процентная величина от общей высоты области просмотра. К примеру, 10vh составляет 10% от текущей высоты области просмотра.

Поддержка у vh отличная, добавлена она в спецификации CSS3 (~2011г.) img.png

Одной из особенностей этой единицы измерения, заключается в том, что элемент, которому задана высота в единицах vh, заходит за адресную строку.

Изначальная позицияПрокрученная позиция
img.pngimg.png

При этом, эта же особенность становится проблемой в тот момент, когда вам нужно разрабатывать сайт one-screen — весь контент должен быть на одном экране и без скрола.

lvh — Large Viewport Height

Определение

Large Viewport Height (lvh) — это процентная величина от максимальной высоты области просмотра.

Что же значит "максимальной высоты области просмотра"? Это значит то, что относительная единица lvh рассчитывается от высоты экрана, когда все доступные элементы интерфейса браузера либо скрыты, либо уменьшены, в зависимости от того, как браузер "избавляется" от них.

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

Изначальная позицияПрокрученная позиция
img.pngimg.png

По сути, в данный момент lvh работает также как vh.

svh — Small Viewport Height

Определение

Small Viewport Height (svh) — это процентная величина от минимальной высоты области просмотра.

Единица измерения svh рассчитывается ровно противоположно тому, как рассчитывается lvh, т.е. учитывает динамические элементы интерфейса браузера, независимо от того, скрыты ли они в момент загрузки страницы.

Изначальная позицияПрокрученная позиция
img.pngimg.png

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

dvh — Dynamic Viewport Height

Определение

Dynamic Viewport Height (dvh) — это процентная величина от текущей высоты области просмотра.

Единица dvh рассчитывается с учетом динамических элементов интерфейса браузера. Т.е. когда элементы видны, dvh ведет себя как svh, а когда у браузера убраны динамические элементы, как lvh.

Изначальная позицияПрокрученная позиция
img.pngimg.png

Поддержка

Поддержка у выше перечисленных единиц измерения довольно маленькая, т.к. находятся в стадии разработки в спецификации CSS4. img.png

Бонус

Изначальная позицияПрокрученная позиция
img.pngimg.png
Изначальная позицияПрокрученная позиция
img.pngimg.png

Last updated:

Released under the MIT License.