CSS: flexbox で固定フッターを表示(サンプルコードあり)

📋 目次(クリックで展開)

コンテンツの量に関わらず、常に画面下部にフッターを表示する例です。こちらの記事で紹介している実装と比較し、3箇所ほど追加することで対応することができます。

実装例

<!DOCTYPE html>
<html lang="en">
<head>
<style>
body {
margin: 0px;
min-height: 100vh;
display: flex;
flex-direction: column;
overflow-y: hidden; /*追加*/
}
header {
background: lightpink;
}
main {
background: lightblue;
flex: 1;
max-height: calc(100vh - 48px); /*追加*/
overflow-y: auto; /*追加*/
}
footer {
background: lightgreen;
}
</style>
</head>
<body>
<header>
head
</header>
<main>
<div>main</div>
<div>main</div>
<div>main</div>
<div>main</div>
<div>main</div>
<div>main</div>
<div>main</div>
<div>main</div>
<div>main</div>
<div>main</div>
<div>main</div>
<div>main</div>
<div>main</div>
<div>main</div>
<div>main</div>
<div>main</div>
<div>main</div>
<div>main</div>
<div>main</div>
<div>main</div>
<div>main</div>
<div>main</div>
<div>main</div>
<div>main</div>
<div>main</div>
<div>main</div>
<div>main</div>
<div>main</div>
<div>main</div>
<div>main</div>
<div>main</div>
</main>
<footer>
footer
</footer>
</body>
</html>

実行結果

画面下部にフッターが表示されており、縦スクロールの位置に関わらず、フッターが常に表示領域にあることが分かります。


💬 コメント