私は、タグを使用srcset
しsizes
て頭を包み込もうとしているところです。img
主にこの記事のおかげで、基本は理解できたと思いますが、sizes
属性の実際の適用には苦労しています。
私が見つけることができるすべての例では、物事は大幅に単純化されており、サイズ属性は、各ブレークポイントで画像の幅がビューポートの幅の正確な比率になるように宣言されており、vm
単位を使用できます。例えば:
sizes="(min-width: 36rem) 33.3vw,
100vw"
もちろん、実生活では、画像自体が他のコンテナー内にあることが多い他のコンテナー内にあり、それぞれに独自のマージン、パディング、または配置があります。
最も単純なケース (画像の幅が流動的で、ビューポートの正確なパーセンテージではない場合) を除いて、calc
使用する必要があると言っても過言ではありません。ビューポートの幅から、コンテナを介して画像まで計算されますか? たとえば、メイン ページ コンテナーの 25% であるサイドバーの内側にある 15px の余白を持つコンテナーの 45% のコンテナー内にある 7px のパディングを持つコンテナーにある画像の正しいサイズをどのように計算しますか? 15px のパディングと 1220px の最小幅がありますか?
sizes="(min-width: 36rem) calc(((((1220px - (2 * 15px) * 25%) * 45%) - (2 * 15px) - (2 * 7px)),
100vw"
サイズ属性でこれを計算しようとするのはばかげているように思えます。特に、これらすべてが各ブレークポイントで変更される可能性があることを考えると。この非常に複雑な計算を CSS の変更と同期させなければならないことは、狂気のように思えます。そして、パッチのブラウザサポートがありcalc
ます.
明らかな何かが欠けているように感じますが、それは何ですか?
注: 属性を使用してサイズの計算を行うAlexander Farkas の優れたLazy Sizesdata
は知っていますが、標準的な使用方法に興味があります。