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

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

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

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

解决方法

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

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

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

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

  1. html,body {
  2. height: 100%;
  3. margin: 0; padding: 0; /* to avoid scrollbars */
  4. }
  5.  
  6. #wrapper {
  7. display: flex; /* use the flex model */
  8. min-height: 100%;
  9. flex-direction: column; /* learn more: http://philipwalton.github.io/solved-by-flexBox/demos/sticky-footer/ */
  10. }
  11.  
  12. #header {
  13. background: yellow;
  14. height: 100px; /* can be variable as well */
  15. }
  16.  
  17. #body {
  18. flex: 1;
  19. border: 1px solid orange;
  20. }
  21.  
  22. #footer{
  23. background: lime;
  24. }
  1. <div id="wrapper">
  2. <div id="header">Title</div>
  3. <div id="body">Body</div>
  4. <div id="footer">
  5. Footer<br/>
  6. of<br/>
  7. variable<br/>
  8. height<br/>
  9. </div>
  10. </div>

猜你在找的CSS相关文章