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

broken_layout.png

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

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

解决方法

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

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

...

...

...

为了启用 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

结论

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

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

fetalk_qrcode.jpg

html5自动把某个层放在屏幕底部,告诉你一个将 footer 保持在底部的最好方法相关推荐

  1. 干扰网络信号的app_手机信号屏蔽软件?告诉你一个「真实有效」的屏蔽信号方法...

    屏蔽手机信号就是通过某种利用某种设备或是某种方法使手机信号暂时消失或减弱的一种行为,多用于教育部门考试.国家机密机关以及机密项目的保密工作中.近年来随着手机等移动终端的日益普及,家庭使用屏蔽设备对无线 ...

  2. 告诉你一个去除PDF文件水印简单快速的方法

    有时候下载一个pdf文件会发里面有水印,正在使用里面内容的时候很不方便,那么如何能去掉这些pdf中的水印呢?下面就告诉你一个去除PDF文件水印简单快速的方法. 方法/步骤 先安装一个迅捷pdf编辑器, ...

  3. 告诉大家一个不买到假U盘的方法

    我很伤心-- 我曾经买过的U盘包括内存卡,(Kingston 512M,Kingston 2G ,Kingston 4G,Kingston 8G)丢的丢,假的假.丢就无所谓了,那是我的问题,可假就不行 ...

  4. python自动导出数据脚本_利用python生成一个导出数据库的bat脚本文件的方法

    # 环境: python3.x def getExportDbSql(db, index): # 获取导出一个数据库实例的sql语句 sql = 'mysqldump -u%s -p%s -h%s - ...

  5. GPU自动调度卷积层

    GPU自动调度卷积层 本文对GPU使用自动调度程序. 与依靠手动模板定义搜索空间的基于模板的autotvm不同,自动调度程序不需要任何模板.用户只需要编写计算声明,无需任何调度命令或模板.自动调度程序 ...

  6. html背景mov,科技常识:html5自动播放mov格式视频的实例代码

    今天小编跟大家讲解下有关html5自动播放mov格式视频的实例代码 ,相信小伙伴们对这个话题应该有所关注吧,小编也收集到了有关html5自动播放mov格式视频的实例代码 的相关资料,希望小伙伴们看了有 ...

  7. html5 自动横屏,html5自动横屏的方法

    html5自动横屏的方法 var evt = "onorientationchange" in window ? "orientationchange" : & ...

  8. video.js android,VideoJS + HTML5自动播放失败,适用于Android 2.3+和IOS 4+

    我的VideoJS和HTML5项目针对更新的Web浏览器(较新版本的FireFox和Chrome)以及移动浏览器(Android2.3 +和IOS4 +).VideoJS + HTML5自动播放失败, ...

  9. html怎样自动播放视频,html5自动播放mov格式视频的实例代码

    这个不算啥新奇吧?但还是记录一下. 这个问题应该这么看. 1.首先网站要支持.MOV格式文件 就是说,网站要能识别.MOV格式文件. 如何识别?设置MIME类型.以IIS为例.除了可以在IIS界面上直 ...

最新文章

  1. MVC新手教程三:Entity Framework 4.0 来实现MVC的增删改查功能,10分钟搞定
  2. 【NLP】通俗讲解从Transformer到BERT模型!
  3. Python学习--Selenium模块
  4. Apache错误日志提示AH02004: SSL Proxy: Peer certificate is expired
  5. php 移植 arm 精简,php5.4.5移植到arm-linux摘要,lighttpd配置
  6. 腾讯2014年实习生招聘笔试面试经历
  7. 【medium】220. Contains Duplicate III
  8. 关于Go1.14,你一定想知道的性能提升与新特性
  9. 关于insert语句的插入问题
  10. 超级芯片电路板问世 比现有电脑快9000倍
  11. 48页PPT|小米用户画像实战,每页都是经典
  12. android timepicker分割线颜色,Android TimePicker 的使用
  13. UML核心元素之参与者
  14. Django6:应用及分布式路由
  15. SheetJS生成/解析Excel
  16. Mysql 各个版本区别及官网下载
  17. 【JavaWeb】JavaWeb与JavaWeb技术栈
  18. 大数据系统管理必备技能
  19. 契约锁android代码,契约锁怎么签合同
  20. Android 屏幕适配终结者

热门文章

  1. 【渝粤题库】陕西师范大学700007 生态学
  2. 【渝粤题库】国家开放大学2021春1366英语教学理论与实践题目
  3. #让人物运动_篮球人物之黄云龙,淡泊名利的他是篮球运动员中的楷模,你可记得...
  4. core identity mysql_Microsoft.AspNetCore.Identity 使用 mysql 报错处理
  5. 稳定婚姻问题:Gale–Shapley算法
  6. 移动办公计算机,最适合移动办公的三款掌上电脑点评
  7. 计算机应用与软件是csci吗,计算机与信息技术学院
  8. prd展示html文件,prd目的.html
  9. 仿小黄车android定位,小黄车ofo是怎么实现自行车定位功能的?
  10. Win10窗口侧边栏设置Win7模式