Sticky footer 是什么?
Sticky footers设计是最古老和最常见的网页效果之一,大多的CSSer都遇到过。可以概括成: 页面有一个footer,如果页面不够长,页脚在视窗底部;如果视窗足够长,页脚会被内容向下挤压,页脚最终还是在页面底部。
可以在这里看到效果 http://www.cssstickyfooter.com/
常见实现
这种效果几乎存在于所有的公司网站和单页网站,看上去很容易实现,但是实际要花费的时间远超预期。在css2.0中解决这个页脚基本都是设置一个固定高度来实现,甚至使用了js的一些计算来进行高度的定位。可以参考:
Sticky Footer
Sticky CSS footers: The flexible way
目前比较流行的技巧就是通过设置容器height:100%;padding-bottom:<固定高度>
, footer maring-top:-<固定高度>
实现
1 | //html |
Flex 实现页脚
Flex的语法可以参考我之前的一个Flex 布局
使用flex几行代码就可以实现,先在<body>
上设置display:flex
, 并添加flex-direction: column;
让内容纵向排列,或者使用组合属性flex-flow:column
, 再设置min-height:100vh
,让body占据整个视窗。在<main>
上设置flex:1
来让main自动适配剩余空间的大小。这样就OK了。
1 | body { |