【CSS】メインコンテンツの高さに関わらずフッターを最下部に固定する
ヘッダー・メインコンテンツ・フッターの3つから構成されるHTMLレイアウトにおいて、上記のように高さが足りずともメインコンテンツを引き伸ばし、フッターを最下部に固定したい。
解決法
<div> <header></header> <main></main> <footer></footer></div>
div { display: grid; grid-template-rows: auto 1fr auto; min-height: 100vh;}
任意の親要素を用意し、その要素に対してGrid Layoutを指定。grid-template-rows: auto 1fr auto
でメインコンテンツのみを引き延ばすことで実現できる。
div { display: flex; flex-direction: column; min-height: 100vh;}
main { flex-grow: 1;}
Flexboxでも実現できるが、子要素にflex-grow: 1
をあてる必要がある。