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