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

如何像部分网站及Stack Overflow一样禁用移动端输入框自动缩放?

解决iPhone输入框字体小于16px自动放大的问题

不用依赖user-scalable=no这类不推荐的viewport设置,有几个实用的方法可以解决:

  • 全局CSS禁用文本自动调整
    在全局样式里添加:

    html {
      -webkit-text-size-adjust: 100%;
      text-size-adjust: 100%;
    }
    

    这个属性会告诉iOS不要自动调整页面文本的大小,包括输入框聚焦时的缩放,而且不会限制用户手动缩放页面,完美契合你不想限制用户缩放的需求。

  • 视觉缩小输入框,保持实际字号16px
    如果不想全局修改,也可以单独针对输入框处理:

    .small-input {
      font-size: 16px; /* 实际字号设为16px,避免触发缩放 */
      transform: scale(0.8125); /* 缩放比例=目标字号/16,比如13px就是13/16=0.8125 */
      transform-origin: left top; /* 确保缩放从左上角开始,布局不偏移 */
      width: calc(200px / 0.8125); /* 反向计算宽度,保持布局和目标字号一致 */
    }
    

    这种方法视觉上是你想要的小字号,但实际字号是16px,iOS就不会触发自动放大。

  • 聚焦时临时切换字号(不推荐)
    给输入框添加聚焦/失焦的样式切换:

    .small-input {
      font-size: 13px;
    }
    .small-input:focus {
      font-size: 16px;
    }
    

    不过这个方法会有字号跳动的视觉变化,体验不如前两种。

你之前试的JS事件阻止默认行为没用,是因为iOS的输入框缩放是系统级触发,常规DOM事件无法拦截,CSS方法才是正解。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.27 07:02:47