LucyとRuby

flex-boxを使ってフッターを一番下に配置する方法

コンテンツ量が少ないページでも、flex-boxを使ってフッターが画面の一番下に配置されるようにする方法を説明します。

flex-boxを使うのが一番簡単

フッターを一番下に配置する方法はいくつかありますが、flex-boxを使うのが一番簡単でかつCSSやHTMLの記述がスマートです。

この方法の概要は「ページの文量が少ない場合には、メインコンテンツの部分をflex-boxで縦に引き伸ばすことでフッターを画面の一番下に配置する」というものです。

下記にシンプルなHTMLの実装例を示します。

<html>
  <body>
    <header>ヘッダー</header>
    <div>コンテンツ</div>
    <footer>フッター</fotter>
  </body>
</html>

よくある、ヘッダー・コンテンツ・フッターの三層構造のサイトです。

cssは下記のように指定します。

html{
  height: 100%;
}
body{
  min-height: 100%;
  display: flex;
  flex-direction: column;
}
div{
  flex: 1;
}

cssの趣旨は以下の通りです。

  • 縦に伸ばす要素(ここではコンテンツ部の<div>)にflex: 1;を指定
  • その親要素(ここでは<body>)にdisplay: flex;flex-direction: column;を指定し、さらにmin-height: 100%;と指定して100%以上の高さになるようにする
  • さらにその親要素(ここでは<html>)にheight: 100%;を指定

これでページの分量が少ない場合でも、コンテンツ部の<div>が縦に引き延ばされてフッターが一番下に配置されます。

post no. 18

Comments