问题描述
|
我正在寻找看起来像这样的两个div:
<div style=\"height:20px;\" />
<div style=\"height:100%;\" />
这给了我两个div,一个div的高度为20px,另一个为整个屏幕高度的100%,这将放置一个垂直滚动条,值为20px。我真正想要的是一个像素为20px,另一个像素为100%-20px。我知道IE具有calc()方法,但是难道没有更简单的方法可以在所有浏览器中使用吗?
解决方法
#div1 {
height:20px;
position:fixed;
top:0px;
right:0px;
left:0px;
}
#div2 {
position:absolute;
top:20px;
bottom:0px;
right:0px;
left:0px;
}
也许这就是您所需要的。
EDIT对不起,误读了标题。..更正了:O如果您希望有多个div2,则可能需要一个类似的结构
<div id=\"div1\"></div>
<div id=\"div2\" style=\"overflow:auto\">[multiple div2 go here]</div>
, 我尝试了一下,在您的div中添加了一些示例文本,并通过不给第二个div高度,而让浏览器(即IE和FF)自行找出要提供的隐藏内容,从而摆脱了滚动条。它。
但是,考虑到您对乔治的评论,我认为这也可能不是您的解决方法。也许您可以发布更多代码(或伪代码),以给出至少一个替换第二个div的典型示例。
, 有一个简单的方法:将第一个div(20px)放在第二个div内。
编辑:由于我的第一个答案不是您的选择,因此您可以使用脚本快速调整div的大小。您可以计算document.height - 20px
并将结果应用为\“ 100%\” div的高度。 CSS没有提供一种方法:
height: 100% - 20px
但是,JavaScript可以:
(通过jQuery :)
$( \"#big_div\" ).height( $( document ).height() - 20 );
, 如果可以提供固定的宽度,则可以不使用任何Javascript:
http://jsfiddle.net/mNNeq/47/
以下是帮助您定位内容的绝佳资源:
http://www.barelyfitz.com/screencast/html-training/css/positioning/