解决该问题的最好方法是采用CSS3提供的一种先进布局模型 :flexbox,可以建立具有适应性的布局。
下面我们代码走起来
<body> <p id="header">...</p> <p id="content">...</p> <p class="footer">...</p> </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乖乖的待在底部了。
总结:以上就是本篇文的全部内容,希望能对大家的学习有所帮助。更多相关教程请访问 CSS视频教程, CSS3视频教程!
相关推荐:
以上就是PC端无论页面有没有完全撑开把footer保持在最底部(不用定位)的详细内容,更多请关注php中文网其它相关文章!
……