clamp 함수
clamp 함수는 세 개의 매개변수를 받습니다: 최솟값, 선호값, 최댓값.
함수는 다음과 같이 반환합니다:
- 선호값이 최솟값보다 작다면 최솟값을 반환합니다.
- 선호값이 최댓값보다 크다면 최댓값을 반환합니다.
- 선호값이 최솟값과 최댓값 사이에 있다면 선호값을 반환합니다.
구문
selector {
property: clamp(min, pref, max);
}
예시 . 블록 크기 제한
다음 예시에서 블록의 선호 크기는
화면 너비의 30%입니다.
하지만 100px보다 작아지거나 300px보다 커질 수 없습니다:
<div id="con1"></div>
<div id="targ"></div>
<div id="con2"></div>
#targ {
width: clamp(100px, 30%, 300px);
height: 100px;
border: 1px solid red;
margin: 30px auto;
}
#con1 {
width: 100px;
height: 100px;
border: 1px solid black;
margin: 30px auto;
}
#con2 {
width: 300px;
height: 100px;
border: 1px solid black;
margin: 30px auto;
}
:
예시 . 반응형 글꼴 크기
다음 예시에서 글꼴의 선호 크기는
4vw입니다.
하지만 16px보다 작아지거나 32px보다 커질 수 없습니다:
<p id="con1">
responsive text example
</p>
<p id="elem">
responsive text example
</p>
<p id="con2">
responsive text example
</p>
#elem {
font-size: clamp(16px, 4vw, 32px);
color: red;
}
#con1 {
font-size: 16px;
}
#con2 {
font-size: 32px;
}
:
예시 . 반응형 모서리 둥글기
다음 예시에서 모서리 둥글기의 선호 값은
3vw입니다.
하지만 5px보다 작아지거나 20px보다 커질 수 없습니다:
<div id="con1"></div>
<div id="elem"></div>
<div id="con2"></div>
div {
width: 100px;
height: 100px;
margin: 20px auto;
background: lightblue;
}
#elem {
border-radius: clamp(5px, 3vw, 20px);
background: #efafc6;
}
#con1 {
border-radius: 5px;
}
#con2 {
border-radius: 20px;
}
: