일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |
Tags
- 커밋
- git remote
- frontend
- eslint
- git prune
- aspect ratio
- git stash
- REACT
- git
- CSS
- 깃
- 상태관리
- prettier
- 유틸리티 타입
- eslint-disable
- git remote origin
- border-box
- flex-box
- 프론트엔드
- developer
- stash
- 중간저장
- git remote -v
- FRONT-END
- 타입스크립트
- typeScript
- content-box
- git remote upstream
- JavaScript
- aspect-ratio
Archives
- Today
- Total
dev_story
[CSS] width 100vw일 때 가로(좌우) 스크롤이 생긴다면? 본문
반응형
width 100vw일 때 가로(좌우) 스크롤이 생긴다면?
#1 vw, vh 란?
- vw = viewport width
- vh = viewport height
- viewport : 화면 Display상의 표시 영역을 뜻합니다.
즉, vw와 vh는 현재 실행중인 화면 크기에 맞춰 상대적 크기를 반환해 주는 역할을 합니다.
#2 문제 원인 (예시 코드 첨부)
body {
width: 100vw;
height: 100vh;
position: relative;
z-index: 10;
&::-webkit-scrollbar {
background: transparent;
width: 8px;
}
&::-webkit-scrollbar-thumb {
border-radius: 100px;
background-color: #ccc;
border: 0;
}
&::-webkit-scrollbar-track {
background-color: transparent;
}
}
위와 같이 css를 하면 width: 100vw; 임에도, 가로(좌우) 스크롤이 생기게 됩니다.
vw, vh는 현재 화면 전체의 상대적인 길이이기 때문에, 스크롤바를 포함한 길이를 기준으로 계산되기 때문입니다.
즉, body의 width는 100vw이고, scrollbar의 width가 8px이기 때문에 가로 스크롤이 생기게 되는 겁니다! (첨부사진의 빨간색 만큼!)
원인으로는, 전체 화면 길이가 "body 100vw" + "scrollbar 8px" 이기 때문에 화면 전체 가로 너비를 넘는 것이에요.
#3 문제 해결
위 문제를 해결하기 위해,
width: calc(100vw - 8px);
으로 설정하면 됩니다. 위 코드는 scrollbar의 width를 전체 화면 너비에서 제외한 것입니다.
반응형
'CSS' 카테고리의 다른 글
[CSS] box-sizing이란? (0) | 2024.02.28 |
---|---|
[CSS] 이미지/동영상 비율을 임의로 설정하려면? - Aspect Ratio (2) | 2024.02.05 |
[CSS] 유튜브 전체화면을 웹에서 구현하려면? (0) | 2024.02.01 |