반응형 개발을 하다보면 보통 Chrome 개발자 툴 같은 것을 이용하며 개발을 할 것이다.
문제는 개발툴을 이용해서 만들면 잘 나오는데, 실질적으로 배포를 해보면 브라우저의 주소창 때문에 다르게 나오는 것을 알 수 있다.
↑브라우저 주소창 때문에 우리가 만든 사이트가 제대로 나오지 않을 수 있다.
해결방법
.my-element {
height: 100vh;
height: calc(var(--vh, 1vh) * 100);
}
css를 위와 같이 만들어 주고 js는 아래와 같이 사용하면 된다.
let vh = window.innerHeight * 0.01;
document.documentElement.style.setProperty("--vh", `${vh}px`);
위의 코드는 height 100을 적용하기 위해 0.01에 해당하는 값을 저장하고 js의 :root에 css 변수 --vh를 만들어주는 것이다.
브라우저 크기를 늘리거나 줄인다면?
위의 코드는 잘 작동하지만 사용자가 브라우저의 크기를 늘리거나 줄이면 다시 vh 값을 변화시켜야 한다. window에 resize이벤트 리스너를 붙이고 리사이징할때 변화시켜 주면 된다.
let vh = window.innerHeight * 0.01;
document.documentElement.style.setProperty("--vh", `${vh}px`);
window.addEventListener("resize", () => {
console.log("resize");
let vh = window.innerHeight * 0.01;
document.documentElement.style.setProperty("--vh", `${vh}px`);
});
참고 사이트 : https://css-tricks.com/the-trick-to-viewport-units-on-mobile
The trick to viewport units on mobile
Viewport units have always been controversial and some of that is because of how mobile browsers have made things more complicated by having their own opinions about how to implement them. Case in …
css-tricks.com
LIST
'Study > 개발 Tip' 카테고리의 다른 글
Tips To Better Mobile Optimized Websites / 더 나은 모바일 최적화 웹 사이트를 위한 팁 (0) | 2022.01.30 |
---|---|
Javascript 리소스 모음... 공부해야 될 것들 / 21.12.31 (0) | 2021.12.31 |
모바일 브라우저 아래로 당겼을 때 새로고침 되는 현상 끄기 (0) | 2021.12.19 |
개발자가 알아야할 Git Repository 목록 (0) | 2021.12.18 |
개발자를 위한 킬러 웹사이트 10개 공개 (0) | 2021.12.18 |
![]() |
![]() |
![]() |
![]() |
![]() |