Я немного опоздал на вечеринку, но нашел довольно аккуратный обходной путь, который решает эту проблему только с помощью манипуляций css. В моем случае я не смог изменить размер шрифта по причинам дизайна и не смог отключить масштабирование.
Поскольку iPhone будет немного увеличивать поля формы, если для текста установлено значение меньше 16 пикселей, мы можем обмануть iPhone, чтобы он думал, что размер шрифта составляет 16 пикселей, а затем преобразовать его в наш размер.
Например, давайте возьмем пример, когда наш текст 14px, поэтому он масштабируется, потому что он меньше 16px. Поэтому мы можем преобразовать масштаб в соответствии с 0,875.
В следующем примере я добавил отступы, чтобы показать, как соответствующим образом преобразовать другие свойства.
.no-zoom {
font-size: 16px;
transform-origin: top left;
transform: scale(0.875); // 14px / 16px
padding: 4.57px; // 4px / 0.875
}
Надеюсь, это поможет!