pictureタグ -画像を条件に応じて切り替える|HTML辞典

<picture>タグとは?

<picture> タグは、異なるサイズやフォーマットの画像を条件に応じて切り替えるためのタグです。
レスポンシブデザインや Web パフォーマンスの最適化に活用されます。

コンテンツモデル

フローコンテンツ(Flow Content)。

閉じタグの有無

<picture>開始タグ(<picture>)と閉じタグ(</picture>)の両方が必要 です。

基本的な記述方法

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

使用できる主な属性

<picture> 自体に属性はありませんが、内包する <source><img> に以下の属性を設定できます。

属性名設定対象説明
srcset<source>使用する画像のファイルパスsrcset="image-large.jpg"
media<source>メディアクエリを指定media="(min-width: 800px)"
type<source>画像の MIME タイプを指定type="image/webp"
alt<img>画像の代替テキストalt="レスポンシブ画像"

CSSを使ったデザイン変更

<picture> 自体には特別なスタイルは適用されませんが、img にスタイルを指定できます。

img {
max-width: 100%;
height: auto;
}

適切な使用例

✅ 画面サイズに応じて異なる画像を表示する(レスポンシブ画像)

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

✅ WebP 形式の画像を優先して読み込む(フォールバック対応)

<picture>
<source srcset="image.webp" type="image/webp">
<img src="image.jpg" alt="WebP対応画像">
</picture>

✅ 画面の解像度に応じて高解像度画像を提供する

<picture>
<source srcset="image@2x.jpg" media="(min-resolution: 2dppx)">
<img src="image.jpg" alt="高解像度対応画像">
</picture>

適切でない使用例(誤った使い方)

<picture> 内に <img> を含めないとフォールバックされない

<!-- NG: <img> を含めていない -->
<picture>
<source srcset="image-large.jpg" media="(min-width: 800px)">
</picture>

正しい書き方(必ず <img> をフォールバック用に含める)

<picture>
<source srcset="image-large.jpg" media="(min-width: 800px)">
<img src="image-small.jpg" alt="フォールバック画像">
</picture>

alt<source> に設定しない(<img> に設定する)

<!-- NG: <source> に alt を設定 -->
<source srcset="image-large.jpg" alt="レスポンシブ画像">

正しい書き方(alt<img> に設定)

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

<picture>タグと他のタグの違い

タグ役割特徴適切な用途
<picture>条件に応じた画像の切り替え<source> を複数指定可能レスポンシブ画像、高解像度対応
<img>単独の画像を表示src で画像を指定一般的な画像表示
<figure>画像とキャプションをグループ化<figcaption> を含む画像に説明を付ける場合

使用上の注意点

<img> は必ず <picture> の最後に記述する

  • すべてのブラウザに対応するため、<img> をフォールバック用として含める。

srcsetmedia を適切に指定する

  • 間違ったメディアクエリを指定すると、期待通りに動作しない。

✅ WebP や AVIF 形式を優先し、JPEG / PNG をフォールバックにする

  • type="image/webp" を指定し、非対応ブラウザ用に JPEG を用意すると最適化される。

関連タグ

  • <img> – 画像を表示する基本タグ
  • <source> – メディアのソースを指定
  • <figure> – 画像と説明をグループ化

まとめ

<picture> タグは、HTML文書内で 異なるサイズやフォーマットの画像を切り替えるためのタグ です。
レスポンシブデザインに適しており、最適な画像を提供することでパフォーマンス向上につながります。