HTML

header,article,footer が並んでいて footer を固定したいとします。

HTML
<header>
Header
</header>
<article>
Article
</article>
<footer>
Footer
</footer>

CSS

「display: flex;」だけだと横並びですが「flex-direction: column;」を指定することで、縦並びのFlexレイアウトができます。

html{
height: 100%;
}
body{
display: flex;
flex-direction: column;
height: 100%;
}
header, footer {
flex: 0 0 auto;
}
article {
flex: 1 0 auto;
}

これならフッターの高さも可変になるし使いやすいですね。