如何在纯CSS中定义可变高度粘性页脚?

前端之家收集整理的这篇文章主要介绍了如何在纯CSS中定义可变高度粘性页脚?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
这里要注意的关键是页脚的高度不会是固定的,但会随内容而变化。

当我说“粘脚”,我使用它在我所理解的是一个页脚,从不高于视口的底部,但如果有足够的内容,它将被隐藏,直到用户滚动的常见定义下来足够看到它。

注意,我不需要支持旧版浏览器。如果CSS显示:table&相关属性帮助在这里,他们是公平的游戏。

解决方法

所有其他解决方案都是过时的,使用JavaScript或表的黑客。

随着CSS flex model的出现,解决可变高度粘性页脚问题变得非常,非常容易:虽然大多数已知的布局内容在水平方向,FlexBox实际上也工作,以及对垂直布局问题。所有你需要做的是将垂直部分包装在Flex容器中,并选择要扩展的部分。它们会自动占用容器中的所有可用空间。

注意标记和CSS有多么简单。没有表黑客或任何东西。

flex模型是supported by all major browsers以及据称IE11,虽然我的IE没有正确呈现这个代码段。

html,body {
  height: 100%;
  margin: 0; padding: 0;  /* to avoid scrollbars */
}

#wrapper {
  display: flex;  /* use the flex model */
  min-height: 100%;
  flex-direction: column;  /* learn more: http://philipwalton.github.io/solved-by-flexBox/demos/sticky-footer/ */
}

#header {
  background: yellow;
  height: 100px;  /* can be variable as well */
}

#body {
  flex: 1;
  border: 1px solid orange;
}

#footer{
  background: lime;
}
<div id="wrapper">
  <div id="header">Title</div>
  <div id="body">Body</div>
  <div id="footer">
    Footer<br/>
    of<br/>
    variable<br/>
    height<br/>
  </div>
</div>

猜你在找的CSS相关文章