跳到正文
FluidClamp
语言: 简体中文

CSS clamp() 流式字体计算器

输入最小、最大尺寸以及对应的视口宽度范围,即可得到可直接粘贴的 clamp() 值、实时预览,以及在各常见断点下的实际渲染尺寸。

输入单位
输出单位

常用预设

你的 clamp() 值

clamp(1rem, 0.8333rem + 0.8333vw, 1.5rem)

斜率: 0.8333vw · 截距: 0.8333rem

CSS
clamp(1rem, 0.8333rem + 0.8333vw, 1.5rem)
CSS 自定义属性
--fluid-size: clamp(1rem, 0.8333rem + 0.8333vw, 1.5rem);
Tailwind 类名
text-[clamp(1rem,0.8333rem_+_0.8333vw,1.5rem)]

最大值是最小值的 1.5 倍,符合 WCAG 1.4.4「调整文字大小」常用的 2.5 倍上限。

各视口下的渲染尺寸
视口尺寸 (px)尺寸 (rem)
320px161
375px16.461.0286
768px19.731.2333
1024px21.871.3667
1280px241.5
1440px241.5
1920px241.5

所有设置都保存在网址中,你可以收藏或分享这个结果。

实时预览

视口 1024px 时为 21.87px

流式字体随屏幕宽度平滑变化。

这个 clamp() 计算器如何工作

你只需确定两个点:最窄屏幕上的尺寸,以及最宽屏幕上的尺寸。计算器会在两点之间连一条直线,并把它转换成一个 CSS clamp() 表达式,包含三部分:最小值、首选值和最大值。视口小于最小宽度时保持最小值,大于最大宽度时保持最大值,介于两者之间时则平滑缩放,完全不需要媒体查询。

斜率表示视口每增加 1 像素,数值增加多少像素,以 vw 为单位书写(1vw 等于视口宽度的 1%)。截距是这条直线在视口宽度为 0 时的取值。二者共同构成 clamp() 的中间参数,例如 0.8333rem + 0.8333vw。

为什么输出使用 rem

在首选值中加入 rem 部分,可以让流式文字继续跟随用户在浏览器中设置的默认字号。只用 vw 构成的尺寸会忽略这一偏好,还会削弱页面缩放的效果。因此默认输出为 rem;如果你的设计令牌以像素书写,也可以切换为 px。若项目修改了 html 的字号,请在「根字号」中填写对应数值。

预览、断点与无障碍

拖动视口滑块(320 到 1920 像素),即可看到文字在该宽度下的实际大小。下方表格列出了 320 和 375 像素(手机)、768 和 1024 像素(平板)以及 1280、1440 和 1920 像素(桌面)时的计算结果,方便确认标题在手机上不拥挤、在大显示器上也不过大。

WCAG 成功标准 1.4.4 要求文字可放大到 200% 且内容不丢失。浏览器缩放会同时缩小以 CSS 像素计算的视口宽度,所以变化幅度过大的流式字体在放大时可能长得比预期少。业界常用的经验是让最大值不超过最小值的 2.5 倍,超过时计算器会给出提醒。

分享与导出

所有设置都会写入页面网址,你可以收藏结果或直接发给同事。可以复制纯 clamp() 值、适用于 :root 的 CSS 自定义属性,或 Tailwind 任意值类名。需要一整套字号?切换到「字号比例」模式,即可把模块化比例导出为 CSS 变量。

常见问题

CSS clamp() 有什么作用?

clamp(MIN, VAL, MAX) 返回 VAL,但不会小于 MIN,也不会大于 MAX。当 VAL 包含视口单位时,结果会随屏幕变大而增长,并在你设定的上下限处停止。所有现代浏览器都支持它。

设置字号时,clamp() 比媒体查询更好吗?

媒体查询只能在固定断点处分段改变尺寸;clamp() 只需一行 CSS 就能连续缩放,避免突然跳变。如果布局在某个断点确实会改变,两者也可以组合使用。

clamp() 中应该用 px 还是 rem?

最小值、最大值以及首选值中的固定部分建议用 rem,这样文字会遵循用户的字号设置;vw 部分负责流式增长。

视口范围该怎么选?

多数网站从最窄手机的 320–375 像素开始,到主内容容器不再变宽的 1200–1440 像素结束。超过这个宽度后,再增大字号通常不会提升可读性。

数据会被发送到服务器吗?

不会。所有计算都在浏览器中完成。Vercel Analytics 只记录匿名、无 Cookie 的页面浏览和按钮事件。