pictureタグの使い方とレスポンシブ画像の適用方法をわかりやすく解説

スポンサーリンク
スポンサーリンク

pictureの概要

レスポンシブ画像を切り替える HTMLタグ

<picture><source srcset=”画像” media=”条件”><img src=”デフォルト画像”></picture>

概要 pictureタグは、異なる画面サイズやデバイスに応じて適切な画像を表示するために使用されます。主にレスポンシブデザインで、高解像度画像やフォーマットの切り替えに利用されます。

  • 異なる画面サイズや解像度に応じて最適な画像を表示できる。
  • sourceタグを使用して、メディアクエリを適用できる。
  • imgタグはデフォルトの画像として機能し、ブラウザがsourceタグをサポートしない場合に表示される。

pictureタグの主な要素と属性

要素 / 属性 説明 使用例
picture 複数の画像を切り替えるコンテナ <picture></picture>
source 条件に応じて表示する画像を指定 <source srcset="image.jpg" media="(max-width: 600px)">
srcset 表示する画像を指定 <source srcset="image-large.jpg">
media メディアクエリ(表示条件) <source media="(max-width: 600px)">
type 画像のMIMEタイプを指定 <source srcset="image.webp" type="image/webp">
img デフォルトの画像 <img src="default.jpg" alt="画像">

pictureタグの基本的な使い方

以下の例では、画面サイズに応じて異なる画像を表示しています。

<picture>
    <source srcset="small.jpg" media="(max-width: 600px)">
    <source srcset="medium.jpg" media="(max-width: 1200px)">
    <img src="large.jpg" alt="レスポンシブ画像">
</picture>

pictureタグの応用:WebP画像の利用

WebP形式をサポートするブラウザではWebP画像を表示し、サポートしない場合はJPEG画像を表示します。

<picture>
    <source srcset="image.webp" type="image/webp">
    <img src="image.jpg" alt="フォールバック画像">
</picture>

pictureタグの応用:解像度に応じた画像の表示

高解像度のディスプレイでは大きな画像を表示し、通常のディスプレイでは標準の画像を表示します。

<picture>
    <source srcset="high-res.jpg" media="(min-resolution: 2dppx)">
    <img src="normal.jpg" alt="標準解像度の画像">
</picture>

注意事項

  • sourceタグの並び順は、上から順に適用される。
  • imgタグはすべてのブラウザでサポートされるため、必ず指定する。
  • レスポンシブデザインに適用すると、ユーザーのデバイスに最適な画像を提供できる。
  • WebPのような新しい画像フォーマットをサポートするために活用すると、ページの軽量化につながる。

よくある質問

Q: pictureタグとimgタグの違いは?
A: pictureタグは条件によって異なる画像を表示できるが、imgタグは1つの画像しか指定できない。
Q: sourceタグを使わずにpictureタグを利用できますか?
A: いいえ、pictureタグ内にはsourceタグまたはimgタグが必要です。
Q: WebP画像を優先的に表示する方法は?
A: sourceタグのtype="image/webp"を指定すると、WebPをサポートするブラウザでは優先的に表示される。
Q: すべてのブラウザでpictureタグは動作しますか?
A: ほとんどのモダンブラウザで動作しますが、古いIEではサポートされていません。
Q: メディアクエリを使わずに画像の切り替えは可能ですか?
A: はい、srcsetを使用すれば、解像度に応じた画像の切り替えが可能です。

まとめ

  • pictureタグは、デバイスや解像度に応じて異なる画像を表示するためのタグ。
  • sourceタグを使用して、画像の種類や条件を指定できる。
  • imgタグをフォールバック用に必ず含める。
  • WebPなどの新しいフォーマットを活用すると、ページの軽量化が可能。
  • レスポンシブデザインに最適で、ページのパフォーマンス向上に役立つ。