如何编写这样的CSS布局?
+---------+
| header |
+---------+
| |
| fill |
| |
+---------+
其中:
我认为这是一个简单的解决方案,但无法理解它。
由于
答案 0 :(得分:3)
您正在寻找的内容类似于“粘性页脚”所需的CSS,因为您希望填充所有剩余的垂直空间,但仍允许它根据需要增长。有很多棘手的解决方案,但大多数在版本8之前都不受IE支持(那时IE中可以display: table;
成为可能)。
这是一个粘性页脚解决方案的 jsFiddle demo ,我把它放在一起,以及必要的jQuery代码,使布局在IE7中运行。如果您不需要IE7支持,请忽略Javascript代码。由于您的特定情况不需要页脚,因此也要省略页脚元素。最后:-p #header
元素在CSS中被赋予固定的高度。从CSS中删除行height: 70pt;
以使标题高度变量。
在不久的将来,CSS Flexible Box模型将使这种布局变得更加容易,但此时浏览器支持仍然非常小。在广泛使用之前,我建议改为使用display: table;
格式。
答案 1 :(得分:1)
所以你将开始使用容器
<div id="contain">
</div>
然后我们将添加页眉和页脚以及样式
<div id="contain">
<div id="header">
Content from Header
</div>
<div id="fill">
Content from Fill
</div>
</div>
#contain {
width:100%;
}
#header{
width:100%;
}
#fill{
width:100%;
min-height:100px;
}
填充将自动调整为标题的高度
答案 2 :(得分:1)
而不是尝试让内容跨越窗口的其余部分而不是标题,而是使主体覆盖窗口,样式,并让您的内容变为可变大小。
我为你设置了一个简单的jsfiddle:http://jsfiddle.net/xeP5M/
<div id="container">
<div id="header">
</div>
<div id="fill">
this is where content goes
</div>
</div>
和CSS:
html, body { height: 100%; }
div { width: 100%; }
#container { background: #ff0; min-height: 100%; position: relative; }
#header { background: #f0f; height: 200px; }
#fill { background: #0f0; min-height: 100%; }
干杯。