HTML: HTMLレスポンシブ画像

最終更新:2026-09-08

同じ画像でも、スマートフォン、タブレット、デスクトップで異なるサイズや解像度で表示されるべきです ― これが「レスポンシブ画像」です。すべての画面サイズで画像をクリアに、帯域効率よく、高速に読み込む方法を学びましょう。

この節のタグ: <meta> <picture> <source> <img>

1. ビューポート設定

レスポンシブデザインの第一歩は、ビューポートを設定することです。これがないと、モバイルブラウザはページを980px幅に縮小して表示するため、テキストや画像が非常に小さくなります。この <meta> タグを追加すると、ページ幅がデバイス画面に一致します。

▶ サンプル

▶ 試してみよう

2. 画像のレスポンシブ対応

画像をコンテナ幅に自動適応させるために最もよく使われる2つのCSSプロパティ:

▶ サンプル

▶ 試してみよう
📌 画像の読み込み速度は重要です。CSSで大きな画像を縮小しても、「見た目が小さくなる」だけで ― ブラウザはフルサイズのオリジナルファイルをダウンロードしています。アップロード前に画像を適切なサイズにトリミングするのが最善です:モバイル用に小さい画像、デスクトップ用に大きい画像。これにより読み込み速度が大幅に向上します。


3. srcset属性

srcset を使うと、ブラウザが画面密度(1x、2x、3x)やビューポート幅に基づいて最適な画像を自動選択できます。複数の画像バージョンを提供するだけで、ブラウザが「賢く選び」ます。

▶ サンプル

▶ 試してみよう

srcset には2つの一般的な使い方があります。


4. picture要素

<picture>srcset よりも柔軟です。異なる画面幅でまったく異なる画像を読み込むことができます ― 例えば、ワイド画面ではパノラマ画像、狭い画面ではクローズアップ画像(デザイン用語で「アートディレクション」と呼ばれます)。

▶ サンプル

▶ 試してみよう

<picture> は複数の画像フォーマット(WebPなど)を提供するためにもよく使われ、ブラウザが最初にサポートするフォーマットを選択します。

▶ サンプル

▶ 試してみよう

ブラウザは各 <source> を上から順にチェックします。フォーマットをサポートしていればそれを読み込み、どれもサポートしていなければ <img> にフォールバックします。これにより、新しいフォーマットの圧縮メリットを享受しながら互換性を維持できます。

この節のタグ: <meta> <picture> <source> <img>

❓ よくある質問

Q srcsetsizesの違いは何ですか?
A srcsetは複数の画像ソースとその解像度(480w768wなど)を提供し、sizesは異なるビューポート幅での画像の実際の表示サイズ((max-width: 480px) 100vwなど)をブラウザに伝えます。ブラウザはこの2つの情報に基づいて、読み込むべき画像を計算します。簡単に言うと、srcsetは「利用可能な画像」、sizesは「さまざまな状況での画像の大きさ」です。
Q なぜ画面サイズを判断して画像を切り替えるJavaScriptを使わないのですか?
A srcset+sizesを使用する利点は3つあります:1)ブラウザはHTMLを解析しながら画像の読み込みを決定でき、JavaScriptの実行を待つ必要がない;2)JavaScriptが無効な場合でも機能する;3)ブラウザはより intelligentな選択ができます(ネットワーク状況、デバイスのピクセル比などを考慮)。JavaScriptは複雑なアートディレクションシナリオ(異なる構成など)にのみ適しており、単純な解像度の切り替えはsrcsetで処理されます。
Q <picture>srcsetはいつ使うのですか?
A srcsetは「同じ画像の異なる解像度バージョン」用で、ブラウザが自動的に適切な鮮明度を選択します。<picture>は「さまざまなシナリオで異なる画像を表示」するためで、異なる構成(アートディレクション)や異なるフォーマット(WebP/AVIF/JPG)を指定できます。シンプルなルール:鮮明度だけが異なる場合はsrcsetを使い、構成やフォーマットが異なる場合は<picture>を使います。
Q レスポンシブ画像はSEOに影響しますか?
A 正しく使用されたレスポンシブ画像はSEOに肯定的な影響を与えます:1)ページの読み込み速度を向上させ(Core Web Vitals指標);2)モバイルユーザーエクスペリエンスを向上させ;3)検索エンジンがaltテキストをインデックスできます。注意:srcset内の画像は同じコンテンツの異なるバージョンでなければなりません。完全に異なる画像を使用すると、検索エンジンが欺瞞と見なす可能性があります。

📖 まとめ

📝 練習問題

  1. レスポンシブ画像ギャラリー: 3枚の画像を持つギャラリーページを作成し、各画像に max-width: 100% を適用してモバイルで完全に表示されるようにしてください。各画像に1xと2xのバージョンを提供するために srcset を使用してください。
  2. アートディレクション練習: <picture> を使って以下を実装してください:デスクトップでは1200px幅の風景写真、タブレットでは768pxのトリミング版、スマートフォンでは480pxのクローズアップ。min-width のメディアクエリでブレークポイントを制御してください。
Web-Tutorial.com

Web-Tutorial 技術チーム

複数の開発者によって共同維持されているプログラミングチュートリアルプラットフォーム。各チュートリアルは専門分野の開発者が執筆・レビューしています。正確で信頼性の高いコンテンツを目指しています — 問題を見つけた場合はお知らせください。

100%