【发布时间】:2011-05-13 18:11:06
【问题描述】:
假设我有 2 个 Div。
- 第一个高度为 100 像素。
- 最后一个应该从第一个末尾到网站末尾。
我尝试了所有我知道的方法:当我将其设置为 100% 时,它会占用整个网站,所以 100 像素太多了。当我在不设置高度的情况下尝试它时,我只能得到我写的东西。
【问题讨论】:
假设我有 2 个 Div。
我尝试了所有我知道的方法:当我将其设置为 100% 时,它会占用整个网站,所以 100 像素太多了。当我在不设置高度的情况下尝试它时,我只能得到我写的东西。
【问题讨论】:
我可能会使用一些 Javascript 来解决这个问题。考虑到 IE 与其他浏览器社区之间存在的许多不一致,这可能是您解决此问题的唯一好方法。使用 JQuery 之类的框架来自动设置第二个 div 的高度,这样您就可以确保相同的效果在所有浏览器中都是一致的,因为 JQuery 是跨浏览器兼容的。
【讨论】:
我认为这在纯 CSS 中是不可能的,因为你不能做到 100% - 100px。您可以使用高度为 100% 和两行的表格。那么第一行是 100px,第二行是剩下的高度。
<table style="height:100%;">
<tr>
<td style="height:100px;">instead of div 1, is 100px</td>
</tr>
<tr>
<td>instead of div 2, takes the rest of the height</td>
</tr>
</table>
【讨论】:
利用position: absolute,当你同时指定top和bottom时有个技巧,基本上就是拉伸你的div:
<!DOCTYPE html>
<html>
<head>
<style>
body { height: 100%; margin: 0; }
#felso { height: 100px; }
#also { position: absolute; top: 102px; bottom: 0; left: 0; right: 0; }
</style>
</head>
<body>
<div id="felso"></div>
<div id="also"></div>
</body>
</html>
根据您的具体需求进行调整。我为top 写了102px,因为有边框,将1px * 2 添加到#felso 的高度。
【讨论】: