2017-9-13
FlexBoxを使って、コンテンツが少ないときでもFooter画面下端に配置する場合の注意
結論
詳細
諸々省略すると単純な実装は以下の通りになる。
<div class="l-app">
<div class="l-app_header">Header</div>
<div class="l-app_content"></div>
<div class="l-app_footer">Footer</div>
</div>
.l-app {
display: flex;
flex-direction: column;
min-height: 100vh;
}
.l-app_content {
flex-grow: 1;
}
基本的にはこれだけで Footer の画面下端配置が可能になるが、IE11 だけこれでは正常に動かない。
どうも IE11 はdisplay: flex
な要素にmin-height
しか与えられていない場合、flex-item がmin-height
を考慮出来ない模様。
理由はわからないが、display: flex
なラッパーで囲めば IE11 でも正常に動作する。
<div class="wrapper">
<div class="l-app">
<div class="l-app_header">Header</div>
<div class="l-app_content"></div>
<div class="l-app_footer">Footer</div>
</div>
</div>
.wrapper {
display: flex;
flex-direction: column;
}
.l-app {
display: flex;
flex-direction: column;
min-height: 100vh;
}
.l-app_content {
flex-grow: 1;
}