2
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Bootstrapでフッターを下部に固定したいときの書き方

Posted at

はじめに

Bootstrap4.6を使用してサイトを作成した際に、<​body><​/body>の中のコンテンツが少ないと中身に合わせてフッターの位置が上に上がってしまっていました。
こんな感じです。

2024-04-30-Bootstrapのフッター02.png

下に空間があってなんとなくかっこ付かないので、この表示を解消する方法を探してみることにしました。

ちょっと違う…となったやり方

「Bootstrap フッター 固定」というような内容で検索して良く見つかるのが「fixed-bottom」を設定するという方法です。
実際にfotterタグの部分に追加してみました。

app/views/layouts/_footer.html.erb
<footer class="bg-dark fixed-bottom">
  <div class='container mt-5'>
  	<div class='row'>
    	<div class='mx-auto text-white'>
    	 <p>Copyright © sample All Rights Reserved.</p>
    	</div>
    </div>
  </div>
</footer>

確かにさっきのログインページで見たらきちんとページの最下部に配置されましたが、コンテンツが多くなるとこんな表示になってしまいました。

2024-04-30-Bootstrapのフッター03.gif

確かに下に固定されています。
ただ、画面が狭くなってしまい、私がやりたかった表示方法とはちょっと違いました。
また、下に余白がないとコンテンツが隠れてしまったり、この表示を採用する際は少し調整が必要そうです。

結論…やりたかったのはこれ

試した結果一番しっくり来たのはこの方法でした。
先ほどはfooterのclassに記述を追加しましたが、こちらの方法ではbody全体のclassに記述しています。

app/views/layouts/application.html.erb
<body class="d-flex flex-column vh-100">
  <%= render 'layouts/header' %>
  <main class="mb-auto">
    <%= yield %>
  </main>
  <%= render 'layouts/footer' %>
</body>

bodyの中に、
「header(部分テンプレート)」
「main」
「footer(部分テンプレート)」
が並んでいる形になります。

これらを「d-flex flex-column」で上から順番に並べて、body自体の高さをvh(ビューポート単位のheight)を100%で指定しています。
これだけだとまだfooterの位置を指定できていないので、mainに「mb-auto」を設定してコンテンツを下端まで寄せます。

ちなみに特に触っていませんが、フッターの中はこうなっています。
さっきの「fixed-bottom」をなくしたバージョンです。

app/views/layouts/_footer.html.erb(部分テンプレート)
<footer class="bg-dark">
  <div class='container mt-5'>
  	<div class='row'>
    	<div class='mx-auto text-white'>
    	 <p>Copyright © sample All Rights Reserved.</p>
    	</div>
    </div>
  </div>
</footer>

この記述で、ようやくフッターを下に配置することが出来ました…!

2024-04-30-Bootstrapのフッター.png

コンテンツの中身が多くなったときはこんな感じの動きになります。

2024-04-30-Bootstrapのフッター04.gif

おわりに

CSSに記述する方法もあったのですが、せっかくBootstrapを使っているからBootstrapで解決させたいと思って試行錯誤してみました。

コンテンツの中央寄せや横並びなど、配置の動かし方がいまいち理解しきれていない部分があるので、タグの設定や理屈を理解して上手に活用できるようにしたいです。

2
1
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
2
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?