具有页眉和页脚的流体高度主体



我想做的是将页眉放在页面顶部,将页脚放在底部,并在两者之间填充所有可用空间。我还希望页眉和页脚的高度固定为px而不是%。

然而,目前因为我将主地图设置为100%,它会迫使页脚离开页面底部,并引入滚动条。

这是我的示例代码:http://jsfiddle.net/W4mXP/20/

CSS

html, body { height: 100%;
    width: 100%;
}
#topbar {
    height: 50px; 
    width: 100%; 
    background-color: black;
    padding-left: 50px;
    padding-right: 50px;
}
#main {
    height: 100%; 
    width: 100%;
    background-color: green;
}
#bottombar {
    height: 25px; 
    width: 100%; 
    background-color: black;
    padding-left: 50px;
    padding-right: 50px;
}

.left {float: left;}
.right {float: right;}

HTML

<html>
    <head>
         <script src="//ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
        <script src="https://maps.googleapis.com/maps/api/js?v=3.exp&sensor=false"></script>
    </head>
    <body>
    <!-- Header -->
    <div id="topbar">
        <div class="left">
        Logo
        </div>
        <div class="right">
<form>
  <div id="radio">
    <input type="radio" id="radio1" name="radio" /><label for="radio1">Choice 1</label>
    <input type="radio" id="radio2" name="radio" checked="checked" /><label for="radio2">Choice 2</label>
    <input type="radio" id="radio3" name="radio" /><label for="radio3">Choice 3</label>
  </div>
</form>
        </div>
    </div>
    <!-- Map -->
    <div id="main">
    Map
    </div>
    <!-- Footer -->
    <div id="bottombar">
        <div class="left">
        Name
        </div>
        <div class="right">
        About
        </div>
    </div>
    </body>
</html>

我的答案可能会有所帮助:将div块设置为100%高度

只需设置页脚的高度和内容的负边距:

#footer { height:100px; }
#container { margin-bottom:-100px; padding-bottom:100px; }

下面是一个如何包含页脚的示例:JSFiddle。

请注意,这在IE7中不起作用,因为它使用了box-sizing

编辑:您还需要在容器中添加填充,以防止容器文本出现在页脚下。我已经修复了JSFiddle示例,将其包含在内。

最新更新