/* In Microsoft Edge 44 there were space below the footer with the previous solution */
html {
display: flex;
width: 100%;
height: 100%;
}
body {
display: flex;
flex-direction: column;
width: 100%;
min-height: 100%;
display: grid;
grid-template-rows: auto 1fr auto;
}
header,
footer {
flex-shrink: 0;
}
main {
flex: 1 0 auto;
}