iPhone Safariで邪魔な自動ズームを撃退!入力欄を快適に使う方法
iPhone の Safari で入力「テキスト」タグの自動ズームを無効にする方法
iPhone の Safari では、テキスト入力欄にフォーカスを合わせると、自動的にズームインする機能があります。これは、小さな画面で入力しやすくするための機能ですが、場合によっては邪魔と感じる人もいるでしょう。
このページでは、HTML と CSS を使って、入力「テキスト」タグの自動ズームを無効にする方法を紹介します。
方法
以下のコードを HTML ファイルの <head>
セクションに追加します。
<meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=no">
このコードは、以下の設定をブラウザに伝えます。
- width=device-width: ビューポートの幅をデバイスの幅に設定
- initial-scale=1.0: 初期ズームレベルを 1.0 に設定
- user-scalable=no: ユーザーによるズームを無効にする
コード解説
meta
要素は、ブラウザにドキュメントに関する情報を提供するために使用されます。name
属性は、メタデータの名前を指定します。
上記のコードでは、name
属性を "viewport" に設定し、content
属性に "width=device-width, initial-scale=1.0, user-scalable=no" という値を設定しています。
注意点
- このコードは、すべての 入力「テキスト」タグの自動ズームを無効にします。特定の入力「テキスト」タグのみの自動ズームを無効にする場合は、
id
属性やclass
属性を使って、そのタグを個別に指定する必要があります。 - このコードは、Safari でのみ動作します。他のブラウザで自動ズームを無効にする場合は、ブラウザ固有の設定方法を確認する必要があります。
補足
上記の方法以外にも、JavaScript を使って入力「テキスト」タグの自動ズームを無効にする方法もあります。詳細は、以下の記事などを参照してください。
この解説が役に立った方は、ぜひ「いいね!」を押してください。
HTML ファイル
<!DOCTYPE html>
<html lang="ja">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=no">
<title>入力「テキスト」タグの自動ズームを無効にする</title>
</head>
<body>
<input type="text" placeholder="ここにテキストを入力">
<input type="text" placeholder="ここにテキストを入力">
</body>
</html>
CSS ファイル
input[type="text"] {
-webkit-user-zoom: none;
-moz-user-zoom: none;
-ms-user-zoom: none;
user-zoom: none;
}
-
<meta>
要素で、viewport
メタタグを設定しています。<input>
要素で、2つのテキスト入力欄を作成しています。
-
input[type="text"]
セレクターを使って、すべての入力「テキスト」タグにスタイルを適用しています。-webkit-user-zoom: none;
プロパティを使って、Webkit ブラウザでのズームを無効にしています。
実行方法
- 上記のコードを HTML ファイルと CSS ファイルに保存します。
- HTML ファイルをブラウザで開きます。
動作確認
テキスト入力欄にフォーカスを合わせても、自動的にズームインされないことを確認できます。
入力「テキスト」タグの自動ズームを無効にする他の方法
方法 1: JavaScript を使う
以下の JavaScript コードを使って、入力「テキスト」タグの自動ズームを無効にすることができます。
const inputs = document.querySelectorAll('input[type="text"]');
inputs.forEach(input => {
input.addEventListener('focus', () => {
input.style.userZoom = 'none';
});
});
querySelectorAll('input[type="text"]')
メソッドを使って、すべての入力「テキスト」タグを取得します。forEach()
メソッドを使って、取得した各入力「テキスト」タグに対して、focus
イベントリスナーを追加します。focus
イベントリスナーの中で、style.userZoom
プロパティを "none" に設定することで、ズームを無効にします。
方法 2: CSS の -webkit-transform プロパティを使う
input[type="text"] {
-webkit-transform: scale(1);
}
-webkit-transform: scale(1)
プロパティを使って、入力「テキスト」タグの拡大率を 1 に固定することで、ズームを無効にします。
方法 3: ライブラリを使う
viewport-meta
などのライブラリを使うことで、簡単に自動ズームを無効にすることができます。
注意事項
- 上記の方法で自動ズームを無効にすると、ユーザーが手動でズームインすることができなくなります。
- 一部のブラウザでは、上記の方法がうまく動作しない場合があります。
html iphone zooming