【htmlコーディング】srcsetとは?レスポンシブに画像を切り替えるsrcsetを使用して失敗した体験談

こんにちは!
「初心者のためのWebデザイナー講座 good-f DESIGN」を運営しているユウです!
Webデザイナーってどんな仕事内容?これからWebデザイナーに挑戦したい!という方に向けて、僕が経験したノウハウやWebの楽しさをお伝えできればと思っています!

今回は、レスポンシブに画像を切り替えるsrcsetを使用して失敗した体験談をご紹介します。

srcsetとは

srcsetとは、imgタグとpictureタグ内のsourceタグで使用するもので、条件によって画像を切り替えることができます。

以前ご紹介したpictureタグで画像を切り替える方法と似ています。

【htmlコーディング】レスポンシブに画像を切り替えられるpictureタグが便利!

ただ、pictureタグと切り替える条件が違い、意図しない表示になってしまい失敗したことがありました。

切り替えの条件

pictureタグの切替の条件は、ウインドウサイズを指定して、そのサイズであればこの画像を表示させるという、ウインドウサイズが条件になりますが、srcsetの場合、デバイズの解像度が条件になります

<!-- pictureタグ -->
<picture>
    <source srcset="画像のパス1" media="(min-width: 1000px)"> <!-- 幅1000px以上なら表示 -->
    <source srcset="画像のパス2" media="(min-width: 700px)"> <!-- 幅700px以上なら表示 -->
    <img src="画像のパス3" alt="" /> <!-- 上記以外なら表示 -->
</picture>

<!-- srcset -->
<img srcset="画像のパス1 1x , 画像のパス2 2x" src="デフォルト画像のパス">

pictureタグは、mediaでウインドウサイズを指定します。
srcsetは、画像のパスのあとに「1x」「2x」と記述し、これでデバイスの解像度を指定します。

デバイスの解像度が1倍であれば1番目の画像が表示され、解像度が2倍であれば2番目の画像、それ以外であればデフォルト画像が表示されるという仕組みです。

意図しない表示で失敗

pictureタグよりシンプルで、1行で記述できるので、srcsetでコーディングした際、意図しない表示で失敗してしまいました。

上記コードの例で言うと、パソコンの場合は画像のパス1を表示させ、スマホの場合は画像のパス2を表示させるつもりで、記述していました。

ところが、今のMacはほとんどがRetinaディスプレイで解像度が2倍になります。
なので、パソコンのMacでみると、スマホ用の画像のパス2が表示されてしまっていたのです。

スマホ用の画像は縦に長く、パソコンで見るとバランスが悪くなってしまいます。
これに気付かなかったことがありました。

最後に

レスポンシブに画像を切り替えるsrcsetを使用して失敗した体験談をご紹介しました。

意図しないというより、勝手に思い込んでいただけですが、このようなことがありました。
何度もちゃんと確認して問題ないよなーと思ってたら、まさかのパソコンも解像度2倍だったとは、思いもしませんでした。

でも分かると当たり前のことですよね。
コードはウソをつきません。

もうこれからはsrcsetは使わないようにしようと思いました。

最後までお読みいただきありがとうございました!
ブログ以外にもTwitter、Facebook、YouTube、LINEもやっていますので、見ていただけたら嬉しいです!
何か気になること等あればお気軽にコメントください。

コメント

タイトルとURLをコピーしました