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

如何基于特定字号计算CSS的ch单位来设置元素宽度?

解决方案

问题根源在于:CSS的ch单位是基于元素**最终生效的font-size**计算的,所以你后续修改font-size会改变ch的基准宽度,导致两个输入框宽度不一致。

结合你使用等宽字体的场景(等宽字体中1ch近似等于1font-size),可以用CSS变量+calc()直接计算出固定宽度,实现「宽度基于18px字体的30ch计算,但实际字体大小可自定义」的需求:

input {
  font-family: monospace;
  /* 定义用于计算宽度的基准字体大小 */
  --base-font-size: 18px;
  /* 直接计算30ch对应的像素宽度(等宽字体下1ch=1font-size) */
  width: calc(30 * var(--base-font-size));
}

#a {
  font-size: 18px;
}

#b {
  font-size: 10px;
}
<input id="a" type="text" placeholder="30ch at 18px font size"><br/>
<input id="b" type="text" placeholder="30ch at 10px font size">

如果是非等宽字体场景,需要先通过浏览器开发者工具确认18px字体下1ch对应的实际像素值,再替换到calc()中。比如假设18px字体下1ch为16px,宽度就写calc(30 * 16px)。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.24 21:10:09