レスポンシブにとっても便利な<picture>タグ!

てっちゃん
てっちゃん

レスポンシブでサイトを構築しているときに、画像をPC用とスマホ用に変更したいときが出てきます。
そんな時にお役立ちのタグが<picture>!

IEでは非対応だったこのタグ。
いちいちcssでブラウザサイズごとにhiddenとかしなくても簡単に切り替えできます^^
とっても便利なのでぜひ活用してください!

説明

<picture>要素の中に複数の<source>1つの<img>である子要素を含めることによって
ブラウザが最適な子要素を選択して表示します。

<source>の中に適切なものがない場合や、<picture>が非対応ブラウザには<img>が選択され、表示します。

選択された<source>は<img>要素で使用している属性を引き継ぎます。

デモページ
デモページのブラウザサイズを変更してみてください!画像が切り替わります

属性

必須属性

srcset=""
画像のURLをいれます
画像の横幅を指定する場合にはwを用いります。
sizes属性とセットで使用する必要があります。
画像の倍率を指定する場合にはxを用いります。

記述例

<source srcset="(画像名).jpg 480w, (画像名-2).jpg 2x" size="100vw">

任意属性

media=""
メディアクエリと同様の使い方をします
type=""
URLのMIMEタイプを指定します
sizes=""
画像の表示サイズを指定します

サンプル

デモページのソースです

デモページ
デモページのブラウザサイズを変更してみてください!画像が切り替わります

<picture>
	<source media="(min-width: 1280px)" srcset="picture/l-size.jpg">
	<source media="(min-width: 640px)" srcset="picture/m-size.jpg">
	<img src="picture/s-size.jpg" alt="サンプル画像">
</picture>

関連記事