요즘 관심사인 디자인시스템 개발 및 유지보수 중에서 픽셀에 대한 내용을 정리하는 글입니다.
CSS에서는 다양한 길이 단위를 사용하여 요소의 크기, 여백, 글꼴 크기 등을 조절합니다. 그중에서도 가장 많이 사용되는 단위인 px, em, rem에 대해 자세히 살펴보겠습니다.
상대 단위로, 부모 요소의 font-size를 기준으로 계산됩니다.
누적 계산이 되므로, 여러 단계 중첩 시 예상하지 못한 크기가 될 수 있습니다.
사용 예시:
.parent {
font-size: 16px;
}
.child {
font-size: 1.5em; /* 24px */
}
주로 사용되는 경우:
em과 달리 루트 요소()의 font-size를 기준으로 합니다.| 항목 | px | em | rem |
|---|---|---|---|
| 기준 | 고정값 | 부모 요소 크기 | html 요소 크기 |
| 유연성 | 낮음 | 중간 | 높음 |
| 계산 용이성 | 쉬움 | 복잡할 수 있음 | 쉬움 |
| 접근성 대응 | ❌ | ✅ | ✅ |
rem 또는 em을 주로 사용하는 것이 바람직합니다.rem은 계산이 단순하고 일관성이 있어 가이드라인에서 추천됩니다.html {
font-size: 62.5%; /* 1rem = 10px */
}
| px 값 | rem 값 |
|---|---|
| 16px | 1.6rem |
| 20px | 2rem |
| 24px | 2.4rem |
@function rem($px) {
@return #{$px / 10}rem;
}
.box {
width: rem(100); // 10rem
padding: rem(20) rem(80); // 2rem 8rem
}
@media (max-width: 768px) {
html {
font-size: 50%; /* 1rem = 8px */
}
}
@media (min-width: 50rem) {
/* 반응형 스타일 정의 */
}
px은 고정적인 디자인 요소에 적합하지만, 접근성과 반응형 측면에서는 유연성이 부족합니다.em은 계층적 스타일 조정에 유용하지만 계산이 복잡할 수 있습니다.rem은 일관된 레이아웃과 반응형 웹 구현에 가장 추천되는 단위입니다.적절한 단위 선택과 조합을 통해 다양한 디바이스 환경에서도 최적의 사용자 경험을 제공할 수 있습니다.