コンテンツの量に関わらず、常に画面下部にフッターを表示する例です。こちらの記事で紹介している実装と比較し、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>
実行結果
画面下部にフッターが表示されており、縦スクロールの位置に関わらず、フッターが常に表示領域にあることが分かります。
