pictureタグの使い方

pictureタグとは?

<picture>タグは、異なる解像度やデバイスに適した画像を提供するためのHTML要素です。

<picture> タグの役割

<picture>タグは、レスポンシブウェブデザインにおいて、異なる解像度やデバイスに適した画像を提供するのに役立ちます。一つの画像を複数のバージョンに分けることで、それぞれのデバイスに最適化された画像を提供することが可能です。

さらにメディアクエリを使用して、特定の解像度やデバイス幅に基づいて画像を提供したり、ブラウザーがサポートしている画像フォーマットを選択したり、最適な画像を提供するのにも役立ちます。

<picture>は HTML の要素で、0 個以上の 要素と 1 つの 要素を含み、様々な画面や端末の条件に応じた画像を提供します。

ブラウザーは複数の 子要素を検討し、その中から最も適切なものを選択します。適切なものがない場合や、ブラウザーが 要素に対応してない場合、 要素の src 属性で指定された URL が選択されます。選択された画像は 要素が占有する領域に表示されます。

参考:mdn web docs

基本的な<picture> タグの使い方

<picture>タグの基本的な使い方を見てみましょう。

<picture>
  <source srcset="image.webp" type="image/webp">
  <source srcset="image.jpg" type="image/jpeg">
  <img src="image.jpg" alt="Description of the image">
</picture>

<picture> タグ内には<source>タグがあります。 <source>タグは、ブラウザーがサポートしている画像フォーマットや解像度のソースを指定します。

srcset 属性は、複数の画像ファイルを指定し、それぞれのファイルが表示される条件を指定します。

type 属性は、画像ファイルのMIMEタイプを指定します。

<img> 要素は、<picture> タグ内の<source> 要素で指定された画像が表示できない場合に代替として表示される画像を定義します。

<picture> タグの応用

<picture> タグの基本的な構文と属性

<picture>
  <!-- ソース1 -->
  <source srcset="image1.jpg" media="(min-width: 768px)">
  
  <!-- ソース2 -->
  <source srcset="image2.jpg" media="(min-width: 320px)">
  
  <!-- フォールバックのための img 要素 -->
  <img src="fallback-image.jpg" alt="代替テキスト">
</picture>

<picture> タグは、<source> 要素(画像のソース)と <img> 要素(フォールバック用の画像)を包含します。

<source> 要素は srcset 属性を持ち、画像のソースを定義します。media 属性を使用して特定のデバイス幅に対する画像ソースを指定できます。

<img> 要素は、<source> 要素で指定された画像が表示できない場合に表示される代替画像を定義します。alt 属性は、画像の内容を説明するテキストです。

さまざまな解像度やデバイスに対応するための <picture> タグの使用例

下の例は、メディアクエリを使用することで、特定のデバイス幅や解像度に応じて異なる画像を提供することができます。これにより、レスポンシブデザインに対応し、異なるデバイスに最適な画像を表示できます。

<picture>
  <!-- 1024px 以上のデバイスに対する画像 -->
  <source media="(min-width: 1024px)" srcset="large.jpg">
  
  <!-- 768px 以上のデバイスに対する画像 -->
  <source media="(min-width: 768px)" srcset="medium.jpg">
  
  <!-- デフォルト、すべてのデバイスに対するフォールバック -->
  <img src="small.jpg" alt="代替テキスト">
</picture>

pictureタグのまとめ

<picture> タグは、異なる解像度やデバイスに対応するために画像を適切に提供する際に非常に重要です。これを使用することで、ユーザーエクスペリエンスを向上させ、検索エンジンでの表示を改善することができます。

適切にマークアップして情報を正確に読み取ってもらいましょう。

タイトルとURLをコピーしました