html { font-size: 16px; }
input, textarea { font-size: max(16px, 1rem); }

输入框在样式里写的是 1rem,按十六像素基准算刚好,iOS 上一点击还是整页放大,收起键盘还留着偏移,换个机型又是正常。先别急着动参数,把报错原文和时间点记下来,顺序反了容易白折腾。

原因不复杂,根元素的 font-size 被改成十四像素,或者被更高优先级的规则覆盖,1rem 实际只有十四像素,低于 iOS 判定缩放的十六像素门槛。这一层换算很容易被忽略。

「输入框字号 16px」改完先别急着全量,挑一台机器放半天,真有问题这段时间就能看出来。备份不是备了就行,恢复一次才算数,很多备份文件打开才发现是空的。

接口问题先分清是没发出去、发出去了没收到,还是收到了处理失败。

处理上按这个顺序:直接在输入框上写 font-size: 16px,不依赖 rem 换算,最省事,也不容易出错;查一遍 html 的 font-size,有没有被媒体查询或脚本改小,改小就等于白写;在计算样式面板里确认最终字号,别看源码里写的那行。

改完只确认一件事:聚焦输入框后页面保持原样,键盘收起也没有残留的放大偏移。

作者 9823189