반응형
clamp()
- 최소값과 최대값 사이에서, 주어진 선호값을 제한하여 반환하는 함수
- 주어진 값이 최소값 이상, 최대값 이하가 되도록 자동으로 제한
- 유동성과 안정성을 동시에 주는 함수
- 반응형 디자인에서 폰트, 여백, 요소 크기 조절에 자주 사용됨
구성
/* [문법] */
css속성명:clamp(최소값, 선호값, 최대값);
- 최소값(min) → 절대 넘지 말아야 할 하한선
- 선호값(preferred) → 브라우저가 먼저 시도하는 값 (대개 뷰포트 기반 단위 사용)
- 최대값(max) → 절대 넘지 말아야 할 상한선
동작 방식
- 브라우저가 선호값을 계산
- 그 값이 최소값보다 작으면 → 최소값 사용
- 그 값이 최대값보다 크면 → 최대값 사용
- 아니면 → 선호값 그대로 사용
html {font-size:62.5%}
/*
최소값(1.6rem)이 16px (예: 1rem = 10px일 때)라면, 브라우저가 먼저 2vw 값을 계산
- 화면이 작아서 2vw가 16px보다 작으면 → 최소값 16px 사용
- 2vw가 16px 이상이 되는 순간부터 → 2vw 값을 그대로 사용
- 2vw가 24px 이상이면 → 최대값 24px로 제한
*/
font-size: clamp(16px, 2vw, 24px);
| 뷰포트 | 1vw(px) | 2vw(px) | 적용 폰트 크기(px) | 설명 |
| 600 | 6 | 12 | 16 | 12 < 16 → 최소값 16px |
| 800 | 8 | 16 | 16 | 16 = 16 → 선호값(16px) 적용 |
| 1000 | 10 | 20 | 20 | 20 > 16 & < 24 → 2vw 적용 |
| 1300 | 13 | 26 | 24 | 26 > 24 → 최대값 24 적용 |
변화 기준
- clamp()에서 말하는 화면이 넓어질수록 또는 작아질수록 변화하는 기준은, 보통 중간에 넣는 "선호값"이 뷰포트 크기 기반 단위인지 여부에 달려 있음
- 화면 크기에 따라 변하는 건 뷰포트 단위(vw, vh, vmin, vmax, lvw, svw, dvw 등)를 쓸 때만 가능
- 이 단위들은 브라우저가 현재 보이는 영역 크기를 기준으로 계산함
- clamp()의 최소,최대값은 보통 rem이나 px로 고정,
선호 값에 뷰포트 단위를 넣어 반응형 변화 유도
변화 기준이 없는 경우
- px, rem, %(부모 폰트 기준) 같은 고정 단위를 쓰면화면 크기와 상관없이 값이 변하지 않음.
- clamp()의 선호값이 뷰포트 단위가 아니면 화면이 커져도/작아져도 선호값은 그대로 유지되고
결국 항상 최소값 또는 최대값 중 하나만 적용될 가능성이 높음.
변화 기준이 있는 경우
- 예) vw = Viewport Width (뷰포트 너비의 %) 예: 1vw = 현재 화면 너비의 1%
- 화면이 넓어지면 vw 값이 커지고, 화면이 좁아지면 vw 값이 작아짐.
clamp()의 선호값에 vw를 넣으면 → 화면 크기에 따라 자동 변동
font-size: clamp(16px, 2vw, 24px);
/*
화면 1000px → 2vw = 20px
화면 500px → 2vw = 10px
(이때 10px은 최소값 16px보다 작으니 16px 사용)
*/
반응형
'CSS > CSS' 카테고리의 다른 글
| [CSS] background 속성 (1) | 2025.08.12 |
|---|---|
| [CSS] object-fit (0) | 2025.08.12 |
| [CSS] backdrop-filter (0) | 2025.06.27 |
| [CSS] aspect-ratio (0) | 2025.06.27 |
| [CSS] transition (0) | 2025.06.27 |