picture要素
picture要素とは
HTML5.1で新しく加わった要素の一つで、モバイル/タブレット/パソコンと画面解像度に最適化された画像を設定するのに javascriptやcssでごにょごにょする必要があったのを解決する、とても便利な要素です。
使ってみよう
<picture> <source media="(min-width: 700px)" srcset="sample1.jpg"> <source media="(min-width: 300px)" srcset="sample2.jpg"> <img src="default.jpg"> </picture>
このように、picture
で囲って使用します。
source
のmedia
属性にcssのメディアクエリのような書き方で、ディスプレイのサイズの指定が可能です。
img
要素はデフォルトの画像を指定します。
ここで気をつけて欲しいのはimg
要素は必ず最後に指定することです。
img
要素をsource
要素より先に指定してしまうと、image
要素の後のsource
は無視されてしまいます。
画像解像度を設定できるsrcsetタグ
macのlatinaディスプレイのように高解像度の場合、画像サイズが2倍の画像を使うなんてことはよくあることだと思います。
そこでもう一つ便利なのがsrcset
タグです。
<picture> <source media="(min-width: 768px)" srcset="sample.jpg, sample_1.5x.jpg 1.5x, sample_2x.jpg 2x" /> </picture>
このように、srcset
タグの画像を指定した後に1.5x
2x
と指定する事で、1.5倍のサイズ、2倍のサイズと簡単に対応することができます。
レスポンシブとの相性がとても良いですし、画像の最適化のために活躍する要素です。