css の flexbox を使い、フッターを表示します。
ページの body には、min-height で高さを明示しておきます。body の中に配置されている ヘッダー(header)、メイン(main)、フッター(footer) は flexbox で縦並び(flex-direction: column)にします。ヘッダーとフッターには flex プロパティを指定せず、メインに対してのみ flex: 1; を指定します。すると、メインの領域がコンテンツに応じて自動的に伸縮するので、結果としてメインに高さが無い場合にもフッターはページ下部に表示されます。コンテンツが縦幅を超えると、フッターは画面の下に移動します。
<!DOCTYPE html> <html lang="en"> <head> <style> body { margin: 0px; min-height: 100vh; display: flex; flex-direction: column; } header { background: lightpink; } main { background: lightblue; flex: 1; } footer { background: lightgreen; } </style> </head> <body> <header> head </header> <main> <div>main</div> <div>main</div> <div>main</div> </main> <footer> footer </footer> </body> </html>
