CSS 단위 완벽 가이드

📅 2025년 7월 11일 | 👨‍💻 웹 개발 | 📚 CSS 기초

px, vw, rem, em, % 단위 비교와 언제 어떤 단위를 사용해야 하는지 알아보세요

CSS에서 단위는 웹 디자인의 핵심 요소입니다. 각 단위마다 고유한 특성과 사용 시기가 있어서, 올바른 단위를 선택하는 것이 반응형 웹 디자인의 성공을 좌우합니다. 이 글에서는 CSS의 주요 단위들을 자세히 살펴보고, 언제 어떤 단위를 사용해야 하는지 알아보겠습니다.

1. 절대 단위 (Absolute Units)

1.1 픽셀 (px)

픽셀은 CSS에서 가장 기본적인 단위입니다. 화면의 물리적 픽셀을 기준으로 하는 절대 단위로, 모든 기기에서 동일한 크기를 유지합니다.

.element { width: 100px; height: 50px; font-size: 16px; }

px 단위의 특징:

💡 px 단위 사용 시기

보더, 그림자, 최소/최대 크기 등 고정된 크기가 필요한 요소에 사용하세요. 반응형이 필요 없는 UI 요소에 적합합니다.

2. 상대 단위 (Relative Units)

2.1 뷰포트 단위 (vw, vh)

뷰포트 단위는 화면 크기에 비례하여 조정되는 상대 단위입니다. vw는 뷰포트 너비의 1%, vh는 뷰포트 높이의 1%를 의미합니다.

.responsive-container { width: 50vw; /* 화면 너비의 50% */ height: 30vh; /* 화면 높이의 30% */ font-size: 2vw; /* 화면 너비의 2% */ }

뷰포트 단위의 특징:

⚠️ 뷰포트 단위 주의사항

매우 작은 화면(320px 이하)이나 큰 화면(1920px 이상)에서는 폰트 크기가 부적절할 수 있습니다. min(), max() 함수와 함께 사용하는 것을 권장합니다.

2.2 루트 상대 단위 (rem)

rem은 루트 요소(html)의 폰트 크기를 기준으로 하는 상대 단위입니다. 기본적으로 1rem = 16px입니다.

html { font-size: 16px; /* 기본값 */ } .element { font-size: 1.5rem; /* 24px (16px × 1.5) */ margin: 1rem; /* 16px */ padding: 0.5rem; /* 8px (16px × 0.5) */ }

rem 단위의 특징:

2.3 요소 상대 단위 (em)

em은 현재 요소의 폰트 크기를 기준으로 하는 상대 단위입니다. 중첩된 요소에서는 복잡한 계산이 필요할 수 있습니다.

.parent { font-size: 16px; padding: 1em; /* 16px */ } .child { font-size: 1.5em; /* 24px (16px × 1.5) */ margin: 1em; /* 24px (현재 폰트 크기 기준) */ }

em 단위의 특징:

2.4 퍼센트 (%)

퍼센트는 부모 요소를 기준으로 하는 상대 단위입니다. 부모 요소의 크기에 비례하여 조정됩니다.

.parent { width: 500px; height: 300px; } .child { width: 50%; /* 250px (500px × 0.5) */ height: 80%; /* 240px (300px × 0.8) */ }

3. 단위 비교표

단위 기준 장점 단점 사용 시기
px 절대 크기 정확성, 일관성 반응형 부족 보더, 그림자, 고정 크기
vw 뷰포트 너비 완전 반응형, 유연성 극단적 크기에서 문제 컨테이너, 레이아웃
vh 뷰포트 높이 높이 반응형 모바일 주소창 영향 풀스크린 레이아웃
rem 루트 폰트 크기 접근성, 일관성 계산 필요 폰트 크기, 여백
em 현재 폰트 크기 컨텍스트 반응 복잡한 계산 상대적 여백, 패딩
% 부모 요소 직관적, 유연성 부모 의존 너비, 높이, 여백

4. 실전 활용 가이드

4.1 반응형 웹 디자인에서의 단위 선택

/* 모바일 퍼스트 접근법 */ .container { width: 100%; /* 모바일에서 전체 너비 */ max-width: 1200px; /* 데스크탑 최대 너비 */ margin: 0 auto; padding: 1rem; /* 반응형 패딩 */ } .card { width: 100%; /* 모바일에서 전체 너비 */ padding: 1.5rem; /* 반응형 패딩 */ font-size: 1rem; /* 기본 폰트 크기 */ } /* 태블릿 이상 */ @media (min-width: 768px) { .card { width: calc(50% - 1rem); /* 2열 레이아웃 */ font-size: 1.125rem; /* 약간 큰 폰트 */ } } /* 데스크탑 */ @media (min-width: 1024px) { .card { width: calc(33.333% - 1rem); /* 3열 레이아웃 */ font-size: 1.25rem; /* 더 큰 폰트 */ } }

4.2 접근성을 고려한 폰트 크기 설정

/* 루트 폰트 크기 설정 */ html { font-size: 16px; /* 기본값 유지 */ } /* 사용자 설정 존중 */ @media (prefers-reduced-motion: reduce) { html { font-size: 18px; /* 더 큰 폰트 */ } } /* 폰트 크기 체계 */ .text-xs { font-size: 0.75rem; } /* 12px */ .text-sm { font-size: 0.875rem; } /* 14px */ .text-base { font-size: 1rem; } /* 16px */ .text-lg { font-size: 1.125rem; } /* 18px */ .text-xl { font-size: 1.25rem; } /* 20px */ .text-2xl { font-size: 1.5rem; } /* 24px */

5. 단위 변환 팁

5.1 px to vw 변환 공식

px를 vw로 변환할 때는 다음 공식을 사용합니다:

vw = (px ÷ 기준 너비) × 100 예시: 1440px 기준에서 100px를 vw로 변환 vw = (100 ÷ 1440) × 100 = 6.94vw

5.2 px to rem 변환 공식

px를 rem으로 변환할 때는 다음 공식을 사용합니다:

rem = px ÷ 16 예시: 24px를 rem으로 변환 rem = 24 ÷ 16 = 1.5rem

🔧 PX-VW 변환기 활용

복잡한 계산 없이 PX-VW 변환기를 사용하면 px 값을 vw로 쉽게 변환할 수 있습니다. 다양한 브레이크포인트에 맞춰 정확한 변환을 제공합니다.

6. 모범 사례

7. 결론

CSS 단위는 각각의 고유한 특성과 사용 시기가 있습니다. 프로젝트의 요구사항과 접근성 고려사항에 따라 적절한 단위를 선택하는 것이 중요합니다. 반응형 웹 디자인에서는 여러 단위를 조합하여 사용하는 것이 효과적이며, PX-VW 변환기를 활용하면 더욱 효율적으로 작업할 수 있습니다.