HTML, CSS, WEB 기술

CSS에서 VH, VW 와 %에 대한 이해

Developer88 2024. 9. 17. 17:09
반응형

 

오늘은 CSS에서,

상대적인 사이즈를 계산하도록 도와주는,

VH, VW와 %에 대해서 정리해 보겠습니다.

 

1. VH

VH는 Viewport Height 에 대한 약자입니다.

현재 브라우저 창의 높이를 기준으로 하는 상대적인 단위인데요.
1vh는 뷰포트 높이의 1%를 의미합니다.
100vh라고 하면 뷰포트의 전체 높이와 같습니다.

 

예를 들어 아래와 같은 html이 있다고 가정해 보겠습니다.

 

<div class="full-height">전체 높이</div>
<div class="half-height">절반 높이</div>

 

 

css를 아래와 같이 해주면 쉽게 전체 높이 또는 절반 높이에 대해서 그리는 것이 가능합니다.

 

.full-height {
    height: 100vh;
    background-color: #f0f0f0;
}

.half-height {
    height: 50vh;
    background-color: #d0d0d0;
}

 

 

2. VW

VW는 Viewport Width의 줄임말로,

뷰포트의 너비를 기준으로 하는 단위가 됩니다.
마찬가지로, 1vw는 뷰포트 너비의 1%가 되고,

100vw는 뷰포트 너비 전체가 됩니다.

 

아래와 같이css를 작성해주면, 전체 넓이를 그릴 수 있게 됩니다.

 

.full-width {
    width: 100vw;
}

 

 

3. %(Percentage)

한가지 더 알아둘 것은 %단위인데요.

이것도 상대적으로 사이즈를 잡을 수 있는데,

VH나 VW가 현재 브라우저 창의 사이즈를 기준으로 잡아준다면,

%단위는 항상 직계 부모를 기준으로 하는 단위가 됩니다.

 

.parent {
    height: 300px;
}
.child {
    height: 50%; /* 부모의 절반 높이 */
}

 

 

4. 반응형 css설정에 사용하기

위에서 배운 개념들을 이용해서,

반응형 css를 설정할 수 있는데요.

 

아래와 같이,

full-screen-header를 절대적인 값이 아닌,

브라우저 사이즈를 기준으로 해서 잡을 수 있습니다.

 

폰트 사이즈도, 반응형으로 설정해 주었는데요.

h1의 경우, 브라우저의 가로넓이의 2%를 2rem에 추가해서 반영되도록 하였습니다.

body에서 적용하는 전체 폰트사이즈도 14px기준으로 전체 브라우저 너비의 0.5%만큼을 추가하였습니다.

 

.full-screen-header {
    height: 100vh;
    width: 100vw;
    display: flex;
    justify-content: center;
    align-items: center;
    background-image: url('header-bg.jpg');
    background-size: cover;
    color: white;
    text-align: center;
}

.full-screen-header h1 {
    font-size: calc(2rem + 2vw);
}

/* 예제 4: 반응형 폰트 크기 */
body {
    font-size: calc(14px + 0.5vw);
}

 

728x90