iOS Safariでinputタグにフォーカスを合わせると、自動で画面が拡大してしまう原因と解決方法

iOS Safariでウェブサイト内のテキストフィールドをタップしてフォーカスを合わせたとき、画面が少し拡大されてしまうことがあります。
入力したあとはで縮小しないと、ずっと拡大されたままなので正直面倒です。
フォームのフォントサイズが16px未満だと拡大される
これはiOS Safariの仕様で、<input>タグのフォントサイズが16px未満のときに、そのタグにフォーカスされると自動で拡大されてしまいます。

See the Pen iOS|<input> font-size by Masakazu Saito (@31mskz10) on CodePen.
zoomプロパティでフォントサイズは16pxにしながら縮小して小さく表示させる
かなり邪道な方法ですが、「どうしてもこのフォームのフォントサイズは小さくしないといけないけど、拡大はさせたくない」という場合に、フォントサイズは16pxにしておきながら、zoomを使って小さくする方法があります。
input {
font-size: 16px; // フォントサイズは16pxにして拡大しないようにする
zoom: 0.75; // 倍率を指定して表示を小さくする
}見た目上は小さく表示されていますが、実際のフォントサイズは16pxなので、フォーカスしても拡大されません。
しかしこの方法は、レイアウトがかなり面倒になりますし、思わぬ表示崩れを生む可能性があります。
「そこまでする意味があるの?」を考えないと、ただただ時間がかかるだけの実装になってしまいます。
デザインから知っておく必要がある
ウェブサイトを実装したりデザインするときに、なぜこうなるのか知っておかないと、ユーザーに余計なストレスを与えてしまうことになります。
今回の問題は実装観点の話ですが、デザイナーも知っておかないと深く考えずに15pxの指定をしてしまいそうです。
inputの中の文字は普通にデザインしていると通常文字より小さくなってしまう場合がありますが、本当に16px未満にするべきなのかどうか考えてデザインする必要がありそうです。

Visual Studio Codeを使ったコード整形方法(Fomatter)
スクロールしてもテーブルヘッダーが追尾するテーブルの作り方
URLを変更するときに必要なリダイレクトに関する基礎知識
Webサイト制作の基礎の基礎、HTMLって何?
Local by Flywheelのページ遷移を軽くする設定
SourceTreeで環境設定の「カスタムアクション」「アップデート」「高度な設定」が選択できない
効率的にHTMLを生成できるPugの特徴や記述方法
スライドを簡単に実装できるJavaScriptライブラリ「Swiper」
CSS疑似要素の「:empty」でタグの中身が空のときのスタイルを設定する
AirPodsで片耳を外しても再生が止まらないようにする方法
MacのKeynoteにハイライトされた状態でコードを貼り付ける方法
iTerm2でマウスやトラックパッドの操作を設定できる環境設定の「Pointer」タブ
DeepLで「インターネット接続に問題があります」と表示されて翻訳できないときに確認すること
Ulyssesの「第2のエディタ」表示を使って2つのシートを横並びに表示する
操作に没頭できる!Firefox版 Arcのようなブラウザ「Zen Browser」
Google Chromeのブックマークを綺麗に整理するコツ
CSS Nite in Kobe, vol.53「XDで作るワイヤーフレーム・プロトタイプとサイト制作時のコミュニケーション」に参加してきました
Path Finder 8.5がリリース!ファイル圧縮形式の種類が増えたり、細かい機能がいくつか追加
技術ブログを書くときのちょっとした入力や作業をスピーディーに行う小技
さまざまな情報を一元管理するオールインワンのワークスペース「Notion」
Dart Sassでファイルを分割して管理する方法|Dart Sass入門
Macのエイリアスとシンボリックリンクの違いや作成方法
EvernoteとBearの違いや使い分けのヒント
AppCleanerでMacアプリを関連ファイルごと完全に削除する