将 footer 保持在底部的最好方法

来源:互联网 发布:淘宝学院培训图片 编辑:程序博客网 时间:2024/06/05 19:50

当你在布局网页时,有可能会遇到类似下面的这种情况


broken_layout.png

导致这一问题的原因是页面内容太少,无法将内容区域撑开,从而在 footer 下面留下一大块空白。

本文将介绍一种现代化的方法,确保 footer 始终处于页面的底部。

解决方法

解决该问题的最好方法是采用 flexbox——CSS3提供的一种先进布局模型,旨在建立具有适应性的布局。如果你对 flexbox 还不怎么熟悉,文章最后有一些扩展阅读链接,可以帮助你了解 flexbox。

我们的演示页面应该具备 Header、主体内容区域和 Footer,下面是该页面的 HTML

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

为了启用 flex模式,我们将 body 的 display 属性设置为 flex, 然后将方向属性设置为列, (默认是行,也就是横向布局)。同时,将html 和 body 元素的高度设置为100%,使其充满整个屏幕。

html{    height: 100%;}body{    display: flex;    flex-direction: column;    height: 100%;}

现在,我们需要调整各个区域占用的页面空间,我们将通过flex 属性来达到这一目的,该属性实际包含了三个属性,分别是:

  • flex-grow:元素在同一容器中对可分配空间的分配比率,及扩展比率
  • flex-shrink:如果空间不足,元素的收缩比率
  • flex-basis:元素的伸缩基准值

我们希望 header 和footer 只占用他们应该占用的空间,将剩余的空间全部交给主体内容区域

header{   /* 我们希望 header 采用固定的高度,只占用必须的空间 */   /* 0 flex-grow, 0 flex-shrink, auto flex-basis */   flex: 0 0 auto;}.main-content{   /* 将 flex-grow 设置为1,该元素会占用全部可使用空间       而其他元素该属性值为0,因此不会得到多余的空间*/   /* 1 flex-grow, 0 flex-shrink, auto flex-basis */   flex: 1 0 auto;}footer{   /* 和 header 一样,footer 也采用固定高度*/   /* 0 flex-grow, 0 flex-shrink, auto flex-basis */   flex: 0 0 auto;}

最终的效果如下图所示。通过点击中央的粉红按钮改变主体内容,footer 会始终显示在页面的最底部。


correct_layout-e1459357917514.png

demo 页面地址:http://demo.tutorialzine.com/2016/03/quick-tip-the-best-way-to-make-sticky-footers/ (看效果可能需要翻墙)

结论

如你说见,如果是从零开始构建布局,flexbox 将会是你的得力助手。除了极少数的例外,所有的主流浏览器都支持 flexbox,就 IE 来说,IE9以后的版本都是支持的。

下面是一些学习 flexbox 布局模型不错的教程和速查表

  • CSS-Trick 的 flex box 快速指南
  • 一个专门提供酷炫 flexbox 技术的网站:Solved by Flexbox
  • 5分钟互动教程

来自:http://www.jianshu.com/p/4896e6936ce3

阅读全文
0 0
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 越想睡觉越睡不着怎么办 腿被裤子染黑了怎么办 肚子上的松皮怎么办 在公司天天背锅怎么办 职场老实背锅怎么办 三星a8充不了电怎么办 果6软件连不上网怎么办 孩子在幼儿园磕伤了怎么办 小孩在幼儿园摔骨折了怎么办 孩子在幼儿园摔骨折了怎么办 大腿被撞了很痛怎么办 马面褶子坏了怎么办 纱料衣服有褶怎么办 裙子如果后背那里小了怎么办 湖州耳朵鸣很严重怎么办 预授权撤销错了怎么办 打酒店里小卡片电话被骗怎么办 本科错过了选导师该怎么办 本科导师威胁学生不让毕业怎么办 意向导师名额满了怎么办? 扔的瓶子被限制怎么办 左钝缘支起始部重度狭窄怎么办 吃了抑郁症药困怎么办 如果股票退市持股人怎么办 电信身份信息审核失败怎么办 打完肌肉针肿了怎么办 refa掉了一个球怎么办 左腿比右腿粗怎么办 产妇上火怎么办吃什么下火呢 哺乳期上火怎么办吃什么下火 前扣内衣有点紧怎么办 橱柜做了小10厘米怎么办 一个月宝宝体检胸围35怎么办 月经量少脸上长斑怎么办 下压100上压160怎么办 怎么办去台湾新的驻签 学生去韩国旅游签证怎么办 猪的眼睛赛肿了怎么办 纹眉没有修复霜怎么办 衣服搞到走珠露香水洗不掉怎么办 涂牙膏把脸烧伤怎么办