4

我正在为我的动态内容而苦苦挣扎。所以让我用一张图片来解释:

在此处输入图像描述

所以我的html看起来像:

<div id="header"> ... </div>

<div id="container">
    <div class="block"> ... </div>
    <div class="block"> ... </div>
    <div class="block"> ... </div>
    <div class="block"> ... </div>
</div>

<div id="footer"> ... </div>

我的问题:我怎样才能让我的容器变得流畅并固定页眉和页脚?容器中的块设置为 50% 的高度和宽度,因此只有容器必须是 100% 的高度(- 固定的页眉和页脚)。

4

4 回答 4

7

你可以用box-sizing属性来做到这一点。

像这样:

小提琴

(我在这里使用的示例假设页眉高度为 64 像素,页脚高度为 30 像素)

标记

<header>header</header>
 <div class="container">
     <div id="content">
         <div class="block">block1</div><!--
         --><div class="block">block2</div><!--
         --><div class="block">block3</div><!--
         --><div class="block">block4</div>
    </div>    
</div>
<footer>footer</footer>

CSS

html,body
{
    height: 100%;
}
header,footer,div
{
   width: 100%; 
}
.container
{
    height: 100%;
    background: pink;
    margin: -64px 0 -30px;
    padding: 64px 0 30px;
    -moz-box-sizing: border-box;
    box-sizing: border-box;
}
#content {
    overflow:auto;
    height:100%;
}
.block
{
    width: 50%;
    height: 50%;
    display: inline-block;
    border: 1px solid yellow;
    -moz-box-sizing: border-box;
    box-sizing: border-box;
    text-align: center;
}
header
{
    height: 64px;
    background: purple;
    position: relative;
    z-index:1;
}
footer
{
    height: 30px;
    background: gray;
    position: relative;
    z-index:1;
}
于 2013-10-17T12:07:08.263 回答
2

像这样

工作演示

css

*{
    margin:0;
    padding:0;
}
#header{
    height:100px;
    background-color:red;
    position:fixed;
    top:0;
    width:100%;
}
#footer{
    height:100px;
    background-color:green;
    position:fixed;
    bottom:0;
    width:100%;
}
#container{
    background-color:#F7F7F7;
    width:100%;
    top:100px;
    position:relative;
}
.block{
    width:50%;
    background-color:gray;
  float:left;
}
于 2013-10-17T11:57:56.957 回答
2

用于float使其流畅设计width。添加边框或填充时请注意部分。因为那些是用 计算的width。正如 Danield 提到的,您可以使用Box sizing 显然测量应该是百分比以使其响应或者您可以编写媒体查询

于 2013-10-17T12:29:34.037 回答
1

您用 标记了您的问题twitter-bootstrap。这是一种对 Bootstrap 更友好的方法:

演示: http ://bootply.com/render/88297

代码: http ://bootply.com/88297

这使用了一些标准的 BS 页眉/导航和固定页脚。然后中心容器使用table,table-rowtable-cell以 50/50 相应地调整中心框的大小。

.center-container {
  height:100%;
  display: table;
  width:100%;
  margin:0;
}

.center-row {
  height:50%;
  width:100%;
  display: table-row;
}

.center-row > div {
  height:100%;
  width:50%;
  display: table-cell;
  border:1px solid #eee
}
于 2013-10-17T12:42:58.717 回答