`srcset` と `<img>` の `sizes`

2023年のイメージに関する効率的で主観的なガイド

深堀りについてはサイドバーを参照してください。これは、現代の様々なサイズとピクセル密度に対応するために、<img> タグをアップグレードするクイックリファレンスです。pixels != pixels であることを知っておくべきです。そして、devicePixelRatio は1:1よりも3.875程度の方が多いです。現代のスマートフォンは、CSSピクセル単位で320-428pxの幅になるように見せかけますが、CSSピクセル単位あたりの多数のデバイスピクセルがあります。

ブラウザウィンドウをどんなに狭くしても、画像のサイズが変わらない場合は、density descriptor を使用する必要があります。これは、ロゴ、アイコン、ボタンなどに適しています。

あなたのブレークポイントを知っていますか?以下のソリューションを微調整するためにこれらの数値が必要になります-最小限に、メインコンテンツ領域が成長を止めるビューポート幅のブレークポイントが必要です。

簡単な方法


<img src = "img.jpg?w=480" 
        srcset="img.jpg?format=webp&w=480 480w, 
                img.jpg?format=webp&w=800 800w, 
                img.jpg?format=webp&w=1200 1200w, 
                img.jpg?format=webp&w=1600 1600w, 
                img.jpg?format=webp&w=2000 2000w"

        sizes="(max-width: 700px) 100vw, 800px" alt="犬が自転車に乗っている画像" />

<!-- ブレークポイントが700pxであることを仮定しています。 
      そして、そのビューポート幅以下では、この画像は幅の100%を占めますが、
      ビューポートが大きい場合は、画像は800 CSSピクセルに制限されます。-->

<!-- これは、ImageflowなどのRIAPI準拠の画像サーバーを使用していることを前提としています。
     デベロッパーの健全性のため、動的な画像バージョンの生成が必須です。 -->