pictureタグとは
picture
タグは、HTML上で画像をレスポンシブに切り替えができる、非常に便利なタグです。
pictureタグの使用方法
使い方はシンプルで、picture
タグの中にsource
タグとimg
タグを入れるだけです。
source
タグは複数入れることが可能です。
ソース例
ソース例はこちらです。
<picture> <source srcset="(画像のパス)" media="(max-width: 768px)"> <img src="(画像のパス)" alt="(代替テキスト)"> </picture>
pictureタグ読み込みの流れ
picture
タグは以下の流れに沿って読み込まれます。
- ブラウザは最初にsourceタグを読み込む。
- 読み込んだ際、sourceタグのmediaの条件を満たしていたら、sourceタグのsrcset属性で指定した画像が表示される。
- sourceタグが複数ある場合、sourceタグは上から順に読み込まれ、条件を満たしてるsourceタグの画像が表示される。
- もしsourceタグのmediaの条件を満たしていない場合は、imgタグの画像が表示される。
sourceタグの解説
source
タグには主に3つの属性(srcset
属性、media
属性、type
属性)を指定することができます。
srcset属性
srcset
属性には、src
属性と同様の方法で画像のパスを指定します。
media
属性の条件を満たしている場合、同じsource
タグ内のsrcset
属性で指定した画像が表示されます。
media属性
media
属性には表示するブラウザ幅の条件を記述します。
例えば、media
属性にmax-width: 768px;
を指定した場合、ブラウザ幅が768px
以下の時に条件が適用されます。
type属性
type
属性は画像の形式(jpg/png/svg/webp
)を記述する属性です。
画像形式がjpg
であれば、type=”image/jpg”
と記述します。
webp以外の主要な画像形式はほぼ全てのブラウザで対応しているため、記述する必要はありません。
webp
のみ、一部対応していないブラウザがあるのでtype
属性の指定を忘れずに行いましょう。