Я потратил часы и десятки попыток выяснить, как рассчитать правильную высоту после переключения iOS Safari на ландшафт, а затем обратно на портрет.
Фактически, высота искажена из минимальная активация режима пользовательского интерфейса (маленькая полоска вверху, полоса внизу отсутствует), которая включается после поворота экрана.
Вот сломанный сайт: https://och.design/
Просто попробуйте переключиться на альбомную, а затем на книжную iOS, и вы увидите, что пространство, в котором находилась нижняя панель навигации, остается пустым, поскольку его размер не учитывается при расчете высоты.
Вот код, который я использую для вычисления правильного --vh
var для моих css событий изменения размера (как предложено в https://css-tricks.com/the-trick-to-viewport-units-on-mobile/):
var vh = $.documentHeight() * 0.01;
document.documentElement.style.setProperty('--vh', `${vh}px`);
И, наконец, код, который я использую в портретном режиме:
.main-container{
-webkit-transform: rotate(-90deg);
-ms-transform: rotate(-90deg);
transform: rotate(-90deg);
-webkit-transform-origin:top left;
-ms-transform-origin:top left;
transform-origin:top left;
position:absolute;
bottom:-100vw;
height:100vw;
width: 100vh;
width:calc(var(--vh, 1vh) * 100);
};
Было бы здорово иметь возможность либо рассчитать правильную высоту в зависимости от включения / выключения режима iOS минимального пользовательского интерфейса, либо запретить вводу iOS минимального UI Mode Co
Заранее большое спасибо!