粘性页脚

点击下边的按钮来隐藏这个页面的内容,注意在页面内容无法填充整个页面时,页脚是如何粘在窗口底部的。

当页面内容稀少时,让页脚粘在页面底部,是每一个 Web 开发者在他的生涯中尝试解决过的问题。并且,可以说绝大多数情况,这是一个已被解决的问题。然而 现存的解决方案 有一个重大的缺陷 — 如果高度未知,就会失效。

Flexbox 布局可以完美解决这类问题。众所周知, Flexbox 布局经常被用在水平布局中,然而在垂直布局中 Flexbox 布局也格外拿手。你所要做的就是把垂直部分包在 flex 容器中,并选择一个元素可以让它展开以高度自适应。它们会自动地利用容器所有可用空间。

下边的示例中,容器被设置成窗口的高度,内容被设置成按需要扩展。(注意:在垂直布局中你需要指定容器的高度,这一点和水平布局的自适应不同。)

HTML 代码

<body class="Site">
    <header></header>
    <main class="Site-content"></main>
    <footer></footer>
</body>

CSS 代码

.Site {
    display: flex;
    min-height: 100vh;
    flex-direction: column;
}

.Site-content {
    flex: 1;
}

在 Github 中查看这个 demo 中完整的粘性页脚组件 源代码