[CSS] 뷰포트 단위의 진화: vh에서 svh, lvh, dvh까지

이지연·2025년 4월 16일

웹 CS (web CS)

목록 보기
9/16
post-thumbnail

🚀 왜 새로운 뷰포트 단위가 생겼을까?

CSS에서 vh, vw 단위는 반응형 웹의 핵심 요소였지만, 모바일 브라우저 환경에서는 주소창의 등장/숨김 등으로 인해 예기치 못한 동작이 발생하곤 했다

이를 해결하고자 W3C에서 2021~2022년 사이 새로운 뷰포트 단위를 제안했고, 2023년 이후부터는 크롬, 사파리 등 주요 브라우저가 이를 지원하기 시작하여 svh, lvh, dvh 사용이 점차 확대되고 있다!


🚀 기존 vh, vw 단위의 한계

기존 vh는 뷰포트 높이의 1%를 의미하는데,
모바일에선 주소창이 나타났다 사라졌다 하면서 뷰포트 크기가 달라지면서 아래와 같은 케이스들이 발생하게 되었어

1️⃣ 페이지가 로드될 때 주소창이 보임
2️⃣ 사용자가 스크롤을 내리면 주소창이 사라짐
3️⃣ 100vh로 설정한 영역이 갑자기 줄어들며 어색한 여백 발생

이로 인해 많은 나와같은 퍼블리셔들은 window.innerHeight 기반 JS 계산, CSS 변수 조작 등 다양한 트릭을 사용해야만 했지만 현재는 그럴 필요가 없다는 점😁


🚀 새로운 뷰포트 단위

이제는 보다 정확하게 뷰포트 상태를 구분해서 단위를 사용할 수 있게 되었습니다.

단위의미
svh/svwSmall Viewport – 주소창이 보이는 상태 기준
lvh/lvwLarge Viewport – 주소창이 사라진 상태 기준
dvh/dvwDynamic Viewport – 현재 상태에 따라 자동 계산됨 (실제 화면 기준)

💡 dvh는 기존 vh의 직관적인 업그레이드 버전이라고 한다


🚀 시각적으로 비교해보기 - 데모사이트

기존 vh를 사용할 때와 svh, lvh, dvh를 사용할 때의 차이를 데모파일로 만들어서 확인해보았어!
예시 이미지의 경우 ios 사파리 환경이야
뷰포트 단위 비교

🔗 데모 사이트 바로 가기 – 각 단위를 직접 토글하며 확인 가능


🚀 상대 길이 단위 전체 정리

단위설명
em요소의 글꼴 크기
rem루트 요소의 글꼴 크기
ex요소 글꼴의 x-height
ch"0" 글리프의 너비
lh요소의 line-height
rlh루트 요소의 line-height
vw뷰포트 너비의 1%
vh뷰포트 높이의 1%
vmin뷰포트의 작은 쪽 1%
vmax뷰포트의 큰 쪽 1%
vb블록 축 기준 뷰포트 1%
vi인라인 축 기준 뷰포트 1%
svw작은 뷰포트 너비 1%
svh작은 뷰포트 높이 1%
lvw큰 뷰포트 너비 1%
lvh큰 뷰포트 높이 1%
dvw동적 뷰포트 너비 1%
dvh동적 뷰포트 높이 1%

📎 MDN - CSS 값과 단위 문서


🚀 마치며

vh는 모바일 환경에서 불안정하게 동작할 수 있지만,
이제 svh, lvh, dvh와 같은 정교한 뷰포트 단위 덕분에 더 이상 자바스크립트에 의존하지 된다!

특히 PWA풀스크린 웹앱을 개발 중이라면,
이러한 새로운 단위들을 활용해 더욱 안정적이고 예측 가능한 레이아웃을 만들 수 있으므로 꼭 사용해보길 추천!


🔗 참고 자료

profile
Eazy하게

1개의 댓글

comment-user-thumbnail
2025년 4월 21일

뷰포트 단위를 잘 알 수 있었고 새로운 단위들도 알게 되어서 좋았습니다~

답글 달기