CLSの改善 : imgタグにはwidthとheightを必ず付ける

CLSの改善 : imgタグにはwidthとheightを必ず付ける

2024年2月12日

当たり前の話ですが、画像サイズを可変にしたいときなどは、ついwidth=”100%”と付けてheightを指定しないといった方法を取る人がいます。
何故かというとwidth=”100%”で指定するだけで縦横比を維持したまま可変してくれるからです。
ただ、これですとLighthouseなどのツールでCLS(Cumulative Layout Shift)の改善を求められることもあります。

では、どうするのかというと特に難しくなく下記のようにwitdhとheightには画像のサイズを指定して、cssでwidth:100%; heigt:auto;とすれば縦横比を維持したまま可変してくれます。

display:blockは何故指定しているのかというと、imgタグはインライン要素なので、上下に空きができてレイアウトのズレが出るからです。
私の場合は大体このパターンで組んでいます。

HTML

<img src="img.jpg" width="400" height="300" alt="代替テキスト" />

CSS

img{
display:block;
width:100%;
height:auto;
}