본문 바로가기
TECH

CSS에서 사용되는 단위들

by Stella-Park 2025. 5. 28.
728x90

CSS에서 사용되는 다양한 단위들이 있다.

  1. em
  2. rem
  3. ch
  4. ex
  5. vh
  6. vw
  7. vmin
  8. vmax

천천히 알아보겠다.

em이란?

부모 요소의 font-size를 기준으로 한 상대 단위

.parent {
  font-size: 16px;
}

.child {
  font-size: 1.5em; /* 부모의 font-size 16px * 1.5 = 24px */
}

 

rem이란?

최상위 루트 요소(html)의 폰트 크기를 기준으로 한 상대 단위 (전체 사이트에서 일관된 크기로 설정하기 유용)
r은 root(최상위)를 뜻한다.

html {
  font-size: 16px;
}

.container {
  font-size: 2rem; /* 16px * 2 = 32px */
}


em과 rem의 다른점?

<html>
  <body>
    <div>
      <div>Inner Divs<div>
    </div>
  </body>
</html>

html {
  font-size: 16px;
}

div {
  font-size: 2rem or 2em;
}

위의 코드가 있을 때 rem의 경우 div가 몇 개 있든지 font-size는 16 * 2 = 32px로 표현되지만, em의 경우 div가 2개 있기 때문에 Inner Divs의 font-size는 16 * 2 * 2 = 48px로 표현된다. 즉, 각 부모의 font-size를 상속받아 점점 커지게 된다.

 

ch란?

문자 (char) 하나의 너비를 기준으로 한 단위로, 입력 필드의 너비나 코드 블록 등 고정폭 글자 기준의 레이아웃에 사용된다.

input {
  width: 20ch; /* 영문자 20개의 너비 */
}

 

ex란?

현재 글꼴의 소문자 x의 높이 (x-height)를 기준으로 한 단위로, 폰트의 비율적 레이아웃을 만들 때 사용된다. (세밀한 조정 필요시)

sup {
    position: relative;
    bottom: 1ex;
}
sub {
    position: relative;
    bottom: -1ex;
}

위첨자와 아래첨자 사용시에 유용하다.

 

vh란?

viewport height의 약자이며, 브라우저의 화면 높이 대비 백분율을 말한다. 

.full-width {
  width: 100vw; /* 화면 전체 너비 */
}

 

vw란?

viewport width의 약자미여, 브라우저의 너비와 높이 중 작은 쪽을 기준으로 한 백분율을 말한다.

.square {
  width: 50vmin;
  height: 50vmin; /* 뷰포트의 작은 쪽의 절반 크기 */
}

 

vmin이란?

브라우저의 뷰포트의 너비와 높이 중 작은 쪽을 기준으로 한 백분율을 말한다.

.square {
  width: 50vmin;
  height: 50vmin; /* 뷰포트의 작은 쪽의 절반 크기 */
}

vmax란?

브라우저의 뷰포트의 너비와 높이 중 큰 쪽을 기준으로 한 백분율을 말한다.

responsive-box {
  width: 50vmax;
  height: 50vmax; /* 뷰포트의 큰 쪽의 절반 크기 */
}

 

 

표로 정리해보면 다음과 같다. 

em 부모 요소 폰트 크기
rem 루트 요소 폰트 크기
ch 0 문자 너비
ex x-height
vh 뷰포트 높이
vw 뷰포트 너비
vmin 뷰포트 너비·높이 중 작은 값
vmax 뷰포트 너비·높이 중 큰 값

 

728x90

'TECH' 카테고리의 다른 글

Vue / React / Angular 🛜  (6) 2025.06.13
canvas  (4) 2025.05.31
as const  (0) 2025.05.27
setHTMLUnsafe  (2) 2025.05.26
content-visibility 속성  (2) 2025.05.22