ch unit 왜 사용하면 안돼요?
2025-03-10
[CSS]: ch unit 왜 사용하면 안돼요?
개요
작업 중에 길이를 제한하여 정보를 제공해야 하는 경우가 있어서 이런저런 방법을 찾다가 발견한 ch unit.
잘 모르고 사용한다면 낭패를 볼 수 있겠다는 생각에 작성해 봅니다.
Length Units
CSS 에서는 길이를 지정하기 위해 여러 유닛들을 제공한다. 대략 나열해보자면 px
, em
, rem
, %
, ch
, etc…
각각의 단위들은 절대 및 상대, 2개의 유형이 있습니다.
절대 길이 단위
단위 | 이름 | 다음과 동일 |
---|---|---|
cm |
센티미터 | 1cm = 37.8px = 25.2/64in |
mm |
밀리미터 | 1mm = 1/10th of 1cm |
Q |
4분의 1밀리미터 | 1Q = 1/40th of 1cm |
in |
인치 | 1in = 2.54cm = 96px |
pc |
Picas | 1pc = 1/6th of 1in |
pt |
포인트 | 1pt = 1/72nd of 1in |
px |
픽셀 | 1px = 1/96th of 1in |
이 중 사용하는 단위는 px
이 유일합니다.
상대 길이 단위
단위 | 관련 사항 |
---|---|
em |
요소의 글꼴 크기 |
ex |
요소 글꼴의 x-height |
ch |
요소 글꼴의 glyph "0"의 사전 길이 (너비) |
rem |
루트 요소의 글꼴 크기 |
lh |
요소의 라인 높이 |
vw |
뷰포트의 초기 컨테이닝 블록 너비 1%와 같음 |
vh |
뷰포트의 초기 컨테이닝 블록 높이 1%와 같음 |
svw , svh |
작은 뷰포트 각각의 너비 및 높이 1% |
lvw , lvh |
큰 뷰포트 각각의 너비 및 높이 1% |
dvw , dvh |
동적인 뷰포트 각각의 너비 및 높이 1% |
CSS에서 ch unit을 사용하지 말아야 하는 이유
- 일관성 문제: ch 단위는 "0" 문자의 너비를 기준으로 하는데, 이는 폰트마다 다릅니다. 따라서 같은 ch 값이라도 다른 폰트에서는 다른 크기로 표시됩니다.
- 가독성 저하: 모든 문자의 너비가 동일하지 않기 때문에, 긴 텍스트에서 ch 단위로 너비를 설정하면 일부 줄이 예상보다 길거나 짧아질 수 있습니다.
- 브라우저 호환성: 오래된 브라우저에서는 지원이 제한적일 수 있습니다.
- 반응형 디자인 어려움: 다양한 화면 크기와 폰트 크기에 대응하기 어렵습니다.