Правильно будет сказать, что свойство не работает так как ожидается. Оказывается, что часть контейнера с установленной высотой 100vh, может быть перекрыта нижней панелью браузера. Разберемся как решается данная проблема.
В интернете можно найти решения использующие js, но мы их здесь рассматривать не будем.
CSS фиксы сводятся к использованию переменной webkit: -webkit-fill-available:
1 |
height: -webkit-fill-available; |
Эта конструкция задаёт высоту равную видимой области на мобильных устройствах. Обычно задаётся следующая комбинация стилей контейнера:
1 2 3 4 |
.container { height: 100vh; max-height: -webkit-fill-available; } |
Т.е. мы задаём высоту 100vh, но максимально ограничиваем её значением -webkit-fill-available. Так это работает и на десктоп и на мобиле.
Данный трюк работает на всех браузерах, кроме IE 11 (на Edge уже работает).
Если в контейнере есть вложенные обертки, то им для сохранения высоты контейнера в 100% нужно задать следующие стили:
1 2 3 4 |
.container .sub-wrapper { height: 100%; height: -webkit-fill-available; } |
Добрый день, большое спасибо с данную статью!