emuramemo

製品レビュー、HTML/CSS、webデザイン、音楽、その他いろいろ

html picture要素の分岐が動かないとき

f:id:emj1025:20190514170334p:plain

picture要素を使うことで、ウィンドウ幅ごとに読み込む画像を変更することができます。

 

しかし、どの幅でも同じ画像が表示されてしまい困りました。

 

ソース

以下、分岐が動作しないソース。

 

 

以下、修正したソース。

 

 

aタグをpicture要素の外に出してやるとちゃんと分岐が動作しました。pictureの中にaタグを入れてはいけないようでした。

「ulのなかにdivいれてやがる m9(^Д^)」レベルのミスですね…。仕様の理解不足…。

 

おまけ

ちなみにpictureを使わずにsetsrcだけを使う方法もあります。

この場合、chromeでは一度最大サイズの画像を表示すると、もうそれしか表示しない仕様となっています。

 

参考:Chromeのsrcsetで誤解していた。

 


ビジュアルをウィンドウ幅ごとに確実に切り替えたいときはpicture要素を使うのがよさそうですね。

 

setsrcだけを使う場合と、pictureを使う場合の挙動については@rriverさんの記事がわかりやすいです。

参考:なんでもかんでも<picture>要素を使えばいいわけじゃない!レスポンシブ・イメージ実装の際の注意点 | Rriver

emuramemo(c) All Rights Reserved.