You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用CSS Clamp在指定视口区间内设置固定字体大小?

能否用CSS clamp()实现区间内固定字体大小?

可以实现,无需媒体查询,通过clamp()结合calc()和CSS的sign()函数就能构造出符合需求的表达式,让字体在680px-1020px视口区间内固定为28px,低于680px时用20px,高于1020px时用40px。

实现代码

font-size: clamp(
  20px,
  calc(
    /* 中间区间(680px-1020px)生效:28px */
    28px * clamp(0, sign(100vw - 680px), 1) * clamp(0, sign(1020px - 100vw), 1) +
    /* 小于680px生效:20px */
    20px * clamp(0, sign(680px - 100vw), 1) +
    /* 大于1020px生效:40px */
    40px * clamp(0, sign(100vw - 1020px), 1)
  ),
  40px
);

原理说明

  • sign()函数会根据传入值的正负返回1(正数)、-1(负数)或0(零),配合clamp(0, ..., 1)可以将结果转为0或1,起到“开关”的作用。
  • 当视口宽度小于680px时,只有20px对应的“开关”为1,其余为0,最终取20px。
  • 当视口宽度在680px-1020px之间时,只有28px对应的两个“开关”均为1,其余为0,最终取28px。
  • 当视口宽度大于1020px时,只有40px对应的“开关”为1,其余为0,最终取40px。

这种写法无需额外媒体查询,代码精简且能精准满足需求。

内容的提问来源于stack exchange,提问作者Walrus

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.10 13:01:02