본문 바로가기
HTML, CSS/CSS

CSS 단위별 기준과 특징 (%, px, vh, em, rem)

by curious week 2024. 12. 13.

1. 단위별 기준 및 특징

  • % (퍼센트)
    • 기준: 부모 요소의 크기를 기준으로 함.
    • 용도: 부모 크기에 상대적인 크기 지정에 유용합니다.
  • px (픽셀)
    • 특징: 고정된 단위로, 기기 해상도에 관계없이 동일한 크기를 나타냅니다.
    • 용도: 정밀한 크기 조절이나 경계(border) 등 고정된 크기가 필요한 경우에 사용.
  • vh (뷰포트 높이)
    • 기준: 브라우저 화면(뷰포트)의 높이를 기준으로 함.
    • 예시: 100vh는 뷰포트 전체 높이.
  • em
    • 기준: 해당 요소의 현재 폰트 크기를 기준으로 함.
    • 용도: 글자 크기에 따른 상대적 간격(padding, margin, 자간 등) 조절에 유용합니다.
    • 주의: 요소 내부의 줄 간격(line-height)에서는 단위 없이 배수로 지정하는 경우가 많습니다.
  • rem
    • 기준: 최상위(root) 요소, 보통 <html>의 폰트 크기를 기준으로 함.
    • 용도: 전체 문서의 폰트 크기를 기준으로 상대적인 크기를 지정할 때 사용.
    • 장점: 모바일 기기에서 사용자가 브라우저의 글자 크기 설정을 변경할 때 유연하게 반응할 수 있음.

─────────────────────────────

2. rem 단위 설정 및 사용 예시

  • html 폰트 크기 초기화
    브라우저 기본 폰트 크기가 보통 16px인 것을 감안하여, 계산을 쉽게 하기 위해 아래와 같이 설정합니다.
html {
  font-size: 62.5%; /* 16px * 0.625 = 10px, 즉 1rem = 10px */
}
body {
  font-size: 1.5rem; /* 1.5rem = 15px */
}
  • rem 단위 사용 권장 케이스
    • 추천: 폰트 크기, 텍스트 기반의 레이아웃(예: 블로그, 언론사, 메모 앱 등)에서 사용하는 것이 좋습니다.
    • 주의:
      • padding, margin, width, height, left, top 등의 레이아웃 속성에 rem 단위를 과도하게 사용하면 모바일 레이아웃에서 크기가 깨질 수 있습니다.
      • 폰트 크기를 변경하는 브라우저 설정(예: 네이버 모바일의 폰트 크기 변경 기능) 대응에 유리합니다.

─────────────────────────────

3. rem 단위 적용 시 안드로이드 크롬 조건

안드로이드 크롬에서는 아래와 같은 조건에서만 rem 단위가 정상적으로 적용됩니다:

  • 문단 글자 수: 50개 이상이어야 함.
  • 요소의 폰트 크기: 50px 미만이어야 함.
  • 외부(바깥쪽) 요소에 높이가 없어야 함.

참고: iOS Safari, PC Chrome, 삼성 인터넷 등에서는 이러한 조건 없이 rem 단위가 정상적으로 적용됩니다.

─────────────────────────────

4. 최종 정리

  • %: 부모 요소의 크기에 따라 상대적으로 크기를 지정할 때 사용.
  • px: 고정 크기 지정에 사용.
  • vh: 브라우저 뷰포트를 기준으로 한 크기 지정에 사용.
  • em: 해당 요소의 폰트 크기를 기준으로, 주로 텍스트 관련 스타일(자간, 여백) 조절에 사용.
  • rem: <html>의 폰트 크기를 기준으로 하여, 전체 문서의 상대적인 폰트 크기 지정 및 모바일 사용 시 유연한 글자 크기 변경에 유리함.
    • 설정 예: html { font-size: 62.5%; } → 1rem을 10px로 계산 가능.
    • 주의: 레이아웃 속성에는 사용에 주의(모바일에서 레이아웃 깨짐 가능).

이와 같이 각 단위의 기준과 사용 조건을 이해하면, 디자인과 레이아웃 구현 시 상황에 맞게 적절한 단위를 선택할 수 있습니다.