株式会社オートプロジェクト

スマートフォンで入力欄が勝手に拡大する問題をCSSで防ぐ方法:16px以下 対応

スマートフォンで入力欄が勝手に拡大する問題をCSSで防ぐ方法:16px以下 対応

スマートフォンでフォームに入力しようとしたとき、テキスト入力欄が突然拡大されたり、画面がぐっと寄ってしまった経験はありませんか?

特にiPhoneではよく知られている挙動ですが、Androidでも一部のブラウザーや機種によっては同じような現象が起こることがあります。

この記事では、スマートフォンでよく起こるこの「勝手にズーム」を防ぐために、見た目は16px未満のまま対応できるCSSの書き方をご紹介します。

なぜスマホは入力欄を拡大するの?

スマートフォンでは、文字が小さい入力欄にフォーカスすると、画面が自動的に拡大されることがあります。これは、画面が小さい端末でも文字を読みやすくするための仕様です。

inputやtextareaの文字サイズが16px未満の場合、このズームが発生しやすくなります。Androidでも挙動に差はありますが、同じような現象が起きるケースがあります。

16px以下でズームを防ぐ方法

ズームを防ぐ一番簡単な方法は、入力時のfont-sizeを 16pxにすることです。

とはいえ、見た目は12pxや14pxにしたいケースも多いですよね。そんなときに使えるのが、次の方法です。

<input type="text" class="in-1">
<input type="text" class="in-2">
<input type="text">
.in-1 {
font-size: 14px; /* 見た目は14px */
}

.in-1:focus {
font-size: 16px; /* 入力時は16pxでズーム防止 */
}

.in-2 {
font-size: 12px; /* 見た目は12px */
}

.in-2:focus {
font-size: 16px; /* 入力時は16pxでズーム防止 */
}

実現していること

  • 見た目のデザインとしては12px/14pxを維持
  • 入力時だけ16pxになり、スマホの強制ズームが発動しない

ただ、設定する上で注意することがあります。

注意点

  • フォーカス時に高さが変わることがある
  • フォントが 16pxになるため、入力欄の高さが微妙に変わることがある

見た目のブレを抑えるには、

  • input の高さを固定する
  • line-heightや paddingを少し多めに設定する

などで調整できるので、是非やってみてください。

Webデザイナー / コーダーのみなさまへ

株式会社オートプロジェクトでは、バックエンド全般を安心してお任せいただけます。

サーバー設定やDB管理、セキュリティ対策など幅広いニーズに対応いたします。お気軽にご相談ください。

バックエンドについて、オートプロジェクトに問い合わせをする

Contact ご相談・お問い合わせ

実現の可否や概算費用、納期に関するご質問・ご相談も、
どうぞご遠慮なくお問い合わせください。

お問い合わせ ご相談・お問い合わせ
TOP