Задать вопрос
@Nimbus1996

Как пофиксить 100vh в safari ios?

Ребят, как пофиксить 100vh в safari а iphone? Мне нужно верхнюю секцию на странице растянуть на всю высоту видимой области браузера.
Нашел только одно решение более менее подходящее:
let vh = window.innerHeight * 0.01;
document.documentElement.style.setProperty('--vh', `${vh}px`);


min-height: calc(var(--vh, 1vh) * 100);

Оно вроде как работает, но если перейти с обычной страницы на ту, в которой главная секция должна быть на весь экран, то не правильно высчитывается высота и все улетает в низ. Если обновить эту страницу, то все пересчитается и встанет как надо.
  • Вопрос задан
  • 6687 просмотров
Подписаться 1 Простой 1 комментарий
Пригласить эксперта
Ответы на вопрос 4
nDiviD
@nDiviD
Делать проекты, которыми можно гордиться
@supports (-webkit-touch-callout: none) {
  .h-screen {
    height: -webkit-fill-available;
  }
}
Ответ написан
Комментировать
groog
@groog
Я только учусь
Через размеры в процентах

html,
body {
  height: 100%;
}


Вот пример: https://jsfiddle.net/groog/o7428ged/18/
Ответ написан
@peretc001
Проблема снова актуальна, в IOS15 не происходит пересчет window.innerHeight при открытии клавиатуры, и тем более смены клавы на эмодзи например, кто знает новые хаки?
Ответ написан
Комментировать
@dero
о себе
Одно из лучших решений:
JS:
const appHeight = () => {
    const doc = document.documentElement
    doc.style.setProperty('--app-height', `${window.innerHeight}px`)
}
window.addEventListener('resize', appHeight)
appHeight()


CSS:
:root {
    --app-height: 100%;
}

.block {
    height: 100vh;
    height: var(--app-height);
}
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы