【2024年最新版】iOS端末でinputタグをfocusした時に拡大してしまう場合の解決方法
iOS端末でinput
タグやtextarea
などのタグにfocus
した際に画面が拡大表示されてしまうことがあります。
この記事ではその原因と解決方法をご紹介したいと思います。
文字サイズ(font-size)を16px以上にする
iOSの仕様で文字サイズ(font-size
)が16pxを下回るとinput
タグやtextarea
タグ等にfocus
した際、拡大表示するようになっています。
これは文字サイズ(font-size
)が小さいと視認性が悪くなることに配慮したものだと思われます。
そのため、iOSでinput
タグやtextarea
タグ等にfocus
した際に拡大表示されないようにするためには文字サイズ(font-size
)が16px以上になるように設定します。
16px以下にしたい場合は
デザイン上、全体的に文字サイズ(font-size
)が小さめで構成されていて、どうしても16pxにしてしまうと他に比べて大きくなりすぎてしまう場合、transform: scale()
を使うことで小さくすることが可能です。
// 14pxにしたい場合
font-size: calc(16px * (14 / 16));
// 12pxにしたい場合
font-size: calc(16px * (12 / 16));
これでCSSの指定上は16pxのままですが、擬似的に16px以下の見た目で表示することが出来ます。
viewportにmaximum-scale=1.0を指定する
viewport
の指定を以下のようにすることでiOSでinput
タグやtextarea
タグ等にfocus
した際に拡大表示されなくなります。
<meta name="viewport" content="width=device-width,initial-scale=1.0,maximum-scale=1.0">
ただし、このmaximum-scale=1.0
の指定はWebアクセシビリティ(WCAG)の問題に違反することになるそうです。
この指定を追加すると解決するというブログが多く存在していますが、注意が必要です。
使用する場合は、このようなデメリットを理解した上で使用するようにしましょう。
まとめ
いかがでしたか?
iOSで拡大されてしまうのは現時点でのiOSの使用によるものです。そのため、いつかは解消する可能性もあります。
気になるという人はひとまず今回ご紹介した方法で回避していきたいですね。v