LoginSignup
0
0

next/imageのレイアウトシフト対策について

Last updated at Posted at 2023-09-24

レイアウトシフトとは

Webページは画像の読み込みが完了する前に描画される。そのため、画像に対してレイアウトシフト対策が施されていない場合、画像が遅れて表示されると先に表示されていたコンテンツの表示位置がズレる現象(レイアウトシフト)が発生する。
レイアウトシフトはユーザーのストレスにつながるため、対策を行うことが望ましい。

レイアウトシフトを防ぐには

あらかじめ HTML&CSS で画像の「横幅」「高さ」「縦横比」のうち、2つ以上の情報をブラウザに伝える。それにより、ブラウザは画像の読み込み前に表示エリアを確保し、レイアウトシフトの発生を防ぐことができる。

next/imageにおけるレイアウトシフト対策の仕組み

next/imageは、Imageコンポーネントのwidthheightで指定された値を元にレイアウトシフト対策を行う。ただ、<img />widthheight属性を指定するだけのシンプルな対策には古いブラウザが未対応である。
そのため、古いブラウザでも機能する方法で対策が施される。この方法では、<span>で表示エリアを確保しておき、画像の読み込みが完了したら<span>に重ねて画像を表示する。Imageコンポーネントの出力に<span>が付加されるのはこのためである。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0