用flex布局实现Sticky Footers

Sticky Footer 布局是在开发中经常会用到的一种布局,它的效果简而言之就是当内容的高度小于屏幕的高度时,footer组件会停留在屏幕的最下方,但如果内容高度大于屏幕高度,则footer会被推到内容的最下方.本文将讨论如何使用flex布局来解决这个问题。

HTML

  <body>
  <header>
    <h1>Header</h1>
  </header>
  <div class="main">
    <div>Main Content </div>
  </div>
  <footer>
    <h1>Sticky Footer</h1>
  </footer>
</body>

CSS

  <style>
    html,body {
      display: flex;
      flex-flow: column;
      min-height: 100vh;
    }

    .main {
      flex: 1;
    }
  </style>

解释

这里采用了flex布局,flex-flow:column定义了纵向布局,min-height:100vh定义了body的最小高度是100%的视窗高度。.main中的样式flex属性是flex-grow,flex-shrink和flex-basis的简写,分别代表项目的放大比例(默认0),项目的缩小比例(默认1)和项目在分配多余空间之前占据的主轴空间(默认auto,即项目的原大小),这里flex:1等同于flex:1 1 0%,如果其他项目的flex都是flex:1,则会等分剩余空间。但假如<footer>设置了flex:2,那么页脚的高度将会是主内容高度的2倍。总的来说,为了实现sticky footer,min-heightflex的定义缺一不可。

相关链接

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 问答题47 /72 常见浏览器兼容性问题与解决方案? 参考答案 (1)浏览器兼容问题一:不同浏览器的标签默认的外补...
    _Yfling阅读 14,713评论 1 92
  • 移动开发基本知识点 一.使用rem作为单位 html { font-size: 100px; } @media(m...
    横冲直撞666阅读 8,966评论 0 6
  • H5移动端知识点总结 阅读目录 移动开发基本知识点 calc基本用法 box-sizing的理解及使用 理解dis...
    Mx勇阅读 10,165评论 0 26
  • 梦中的他很遥远,远的让她不知所措。现在她甚至忍不住开始怀疑:她们是不是……不应该相爱呢?他是人,她是妖,人...
    Veronicag阅读 2,900评论 0 0
  • https://github.com/0532
    王立超阅读 1,630评论 0 5

友情链接更多精彩内容