100vh가 적용 안되는 이유
ios safari
➡️상단 노치와 url바, 네비게이션바로 인해 vh
를 window.innerHeight
보다 크게 잡음해결법
js
+ css
로 수정
화면이 처음 렌더링 되었을 때 vh
를 window.innerHeight*0.01
에 맞추어 세팅되도록 선언
useEffect(() => {
const vh = window.innerHeight * 0.01;
document.documentElement.style.setProperty('--vh', `${vh}px`);
}, []);
height: calc(var(--vh, 1vh) * 100); // 실제 사용법
브라우저 resize 고려할 경우
const setVh = () => {
document.documentElement.style.setProperty('--vh', `${window.innerHeight}px`)
};
window.addEventListener('resize', setVh);
setVh();
:root {
--vh: 100%;
}
html,
body {
height: 100vh;
height: var(--vh);
}
css
로 수정
height: 100vh;
height: -moz-available;
height: -webkit-fill-available;
height: fill-available;
새롭게 추가된 css vh