pictureタグを使う


画面幅に合わせて異なる画像を表示できるタグに
<picture>タグがあります。

今のところ、レスポンシブでの使い方しか思い当たりませんが、
PC時とSP時で別々の画像を表示できるので、とても便利ですね。

で、これのいいところは
CSSの@mediaで指定すると
画像を2枚とも読み込まなくてはならないところを、
これなら1枚で済むため、効率的だ、とか。

なるほどね。

こちらの動画を参考にしました。

学校で習ったのは間違っていた

で、コードステップの練習課題で
初めてこのpictureタグがでてきたのですが、
これ、学校で習っていたので、
その時のコードをまんま貼り付けたら・・・

なんと、バリデーションツールでエラーがでてしまいました。

バリデーションツールについて

https://fifties-blog.genzaburow.com/archives/4480

えぇ〜〜〜っ!!

学校で習ったやつだぞ?


貼り付けたコードはこれ、

<picture>

<!–641px以上の時に表示したい画像の指定–>

<source media=”(min-width:641px)” srcset=”img/pc.jpg 960w” sizes=”100vw”>

<!–640px以下の時に表示したい画像の指定–>

<img media=”(max-width:640px)” srcset=”img/sp.jpg 640w” sizes=”100vw” alt=””>

</picture>

で、間違いは

<img> 要素には media 属性を使用できません。media 属性は、<link> 要素や<source> 要素で使用されるもので、画像には適用できません。


なんだとか。by GPTセンセー

CHATGPTセンセーの正解例は

<picture>

  <!– 641px以上の時に表示したい画像の指定 –>

  <source media=”(min-width: 641px)” srcset=”img/pc.jpg” sizes=”100vw”>

  <!– 640px以下の時に表示したい画像の指定 –>

  <source media=”(max-width: 640px)” srcset=”img/sp.jpg” sizes=”100vw”>

  <!– 代替テキストを指定 –>

  <img src=”img/default.jpg” alt=””>

</picture>

でした。

・・・・というわけで、
多分これは学校の先生が間違っていたね。

そんなことも有るんだね。

今回の参考サイト
https://ics.media/entry/13324/

ま、また一つ勉強になりましたな。

Follow me!

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

CAPTCHA