最近在写项目,有的页面没有占到一屏,然后footer也就是底部就靠上了,这样很影响美观,于是在网上找了找,下面是我的成果

解决该问题的最好方法是采用CSS3提供的一种先进布局模型 :flexbox,可以建立具有适应性的布局。

下面我们代码走起来

<body>
<div id="header">...</div>
<div id="content">...</div>
<div class="footer">...</div>
</body>
html{
height: 100%;
} body{
display: flex;
flex-direction: column;
height: 100%;
} #header{
/* 我们希望 header 采用固定的高度,只占用必须的空间 */
/* 0 flex-grow, 0 flex-shrink, auto flex-basis */
flex: 0 0 auto;
} #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;
}

  我们利用flex-deraction:column将页面结构竖向排列,(flex默认是横向排列的),同时,将html 和 body 元素的高度设置为100%,使其充满整个屏幕。  

上面用到了flex包含的3个属性,我来介绍一下他们的用途:

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

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

好啦,到这里,无论页面内容是多是少,都可以保证footer乖乖的待在底部了。

最新文章

  1. php mail 函数发送邮件
  2. Asp.net attributes collection
  3. 未注册wang域名批量查询工具
  4. Python爬虫基础知识入门一
  5. ArcGIS制图之Sub Points点抽稀
  6. 《HTML5高级程序设计》知识点概要(不涉及详细语法)
  7. Codeforces Round #307 (Div. 2) B. ZgukistringZ 暴力
  8. swfupload 上传控件的配置
  9. 【大话QT之十】实现FTP断点续传(需要设置ftp服务器为“PASV”被动接收方式)
  10. vue.js自定义指令入门
  11. (简单) POJ 1321 棋盘问题,回溯。
  12. oracle导出序列的几种办法
  13. 〖C语言学习笔记 〗(二) 数据类型
  14. vue.js手机号验证是否正确
  15. [PC]PHPCMS二次开发指南(上)
  16. iOS - 引用计数探讨
  17. BZOJ3462 DZY Loves Math II(动态规划+组合数学)
  18. Java中instanceof关键字的理解
  19. (9)SpriteFrameCache和TextureCache
  20. php addslashes和stripslashes函数

热门文章

  1. spring(二)
  2. git.ZC一套命令_稀疏签出(sparse-checkout)
  3. 如何有效的使用google进行搜索的20个技能
  4. UUID与System.currentTimeMillis()产生一个新文件名的工具类
  5. Python数据基础类型-新建列表
  6. Node+Express+MySql实现简单增删改查和登录
  7. js模拟自动化测试 -- 多用户登录
  8. Ubuntu 18.04机器学习环境安装
  9. 011-linux服务管理
  10. Java Annotation 刷课笔记(一)