LoginSignup
2

sticky footer というテクニック

Posted at

やりたいこと

webサイトを作る時に、フッターを設置したいけど、

  • 基本的にはコンテンツの一番下に配置
  • コンテンツが画面の高さより小さい場合は画面の一番下に固定

というような動作だと美しいですよね。

なにも考えずにただフッターを設置すると、コンテンツが少ない時に気持ち悪くなってしまいます。

Screenshot_20230709-132451_Chrome.png

↑こんな感じに

これを、「sticky footer」というテクニックを使うと、下のようにできます。

Screenshot_20230709-132629_Chrome.png

↑良き例

コンテンツが画面の高さを超えるようなときは元の動作になります。

実装

実はこれの実装方法は色々あって、jsで画面高さを取得して調整したり、flexboxを縦向きにして画面いっぱいに広げたりという手もありますが、もっとシンプルに実装できます。

html, body {
  height: 100%;
}
footer {
  position: sticky;
  top: 100vh;
  top: 100dvh;
}

まじでこれだけです。

100dvhとなっているのは、100vhだとiOSのsafariなどで、アドレスバーなどのUIの分の高さが引かれないので、UIを引いた分の実際の表示領域を指定する新しい単位です。

まだ対応してないブラウザもあるため、先に100vhを指定してフォールバックしています。

あとからでも簡単に設定できるので、ぜひ試してみてください!

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
2