clamp()函数用于设置响应式值,语法为clamp(min, preferred, max);实际值始终在最小值和最大值之间动态调整,优先使用首选值。常用于字体大小如font-size: clamp(1rem, 2.5vw, 2rem),实现不同屏幕下的自适应显示效果;也可用于宽度、行高设置,如width: clamp(300px, 80%, 1200px)和line-height: clamp(1.2, 0.8 + 1.5vw, 1.8);相比媒体查询更简洁易维护。

css 的 clamp() 函数是一个用于设置响应式值的工具,它允许你为一个属性指定一个“最小值、首选值、最大值”的组合。浏览器会根据当前上下文自动选择最合适的值,特别适合用来实现自适应布局。
基本语法
clamp(min, preferred, max)
- min(最小值):当 preferred 值太小(比如在小屏幕上)时,使用这个值
- preferred(首选值):理想情况下的值,通常是一个相对单位(如 rem、vw)
- max(最大值):当 preferred 值太大时(比如在大屏幕上),限制为这个值
实际显示的值永远不会小于 min,也不会大于 max,而是在两者之间尽可能使用 preferred。
常见用途
最典型的用法是设置字体大小,让文字在不同屏幕尺寸下都能保持良好可读性:
font-size: clamp(1rem, 2.5vw, 2rem);
- 在很小的屏幕上,字体不会小于 1rem
- 在中等屏幕上,字体按视窗宽度动态调整(2.5vw)
- 在很大的屏幕上,字体不会超过 2rem
其他适用场景
- 设置容器宽度:width: clamp(300px, 80%, 1200px);
- 行高或间距控制:line-height: clamp(1.2, 0.8 + 1.5vw, 1.8);
- 结合自定义属性实现更灵活的响应式设计
基本上就这些。clamp() 简化了原本需要媒体查询才能实现的效果,写起来更简洁,维护也更容易。