先上代码
<!DOCTYPE HTML> <html lang="en" style="height: 100%; width: 100%;"> <head> <meta charset="utf-8"> <meta http-equiv="X-UA-Compatible" content="IE=Edge"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> </head> <body class="page-header-fixed page-sidebar-closed-hide-logo page-sidebar-closed-hide-logo" style="position: absolute; width: 100%; min-height: 100%; height: auto;"> <div class="page-header navbar navbar-fixed-top"> //这部分的div的 position 是 fixed </div> <div style="position: absolute; min-height: 100%; height: auto; width: 100%; text-align: center;"> <div class="page-container" style="position: relative; margin-bottom: 30px;"></div> <div class="page-footer" style="position: absolute; bottom: 0px; display: block; width: 100%;"></div> </div> </body> </html>
解析:
1、先设置<html>的 height 为 100%;
2、设置 body 的position 为 absolute,因为它里面的 div 有一个为 fixed,这样可以使得 body 的范围可以包括该div,如果设置为 relatve,则不包括该div。再设置 min-height 为 100%,使其最小高度也为 html 的 height;
3、让内容 div 和页脚 div 都包含在同一个外部 div 中,这样页脚在窗口缩小时不会上浮到内容 div 的位置。
4、外部 div 的 position 设置为 absolute,是由于 body 也为 absolute 的缘故,并设置其 min-height 为 100%,这样可以使其高度最小为 body 的高度,height 为 auto,则使其可以任意改变。
5、页脚 div 的 position 设置为 absolute,bottom 为 0,是为了绝对定位,让其居于页面底部。