我有一个固定高度的容器div。在两个div中,顶部高度:50px,另一个必须填充空白区域,但允许内部滚动。
现在我有两个选择:
#up{
height: 50px;
}
#down{
position: absolute;
top: 50px;
bottom: 0;
}
或:
#up{
height: 50px;
}
#down{
height: calc(100% - 50px);
}
如果我的窗口中有很多这样的情况,哪一个最适合使用性能?
PS。 我不关心旧的浏览器支持。
答案 0 :(得分:2)
我总是使用calc
选项。两者看起来都一样,但事实并非如此。
当您使用position:absolute
时,您正在从html流程中取出容器#down
。
这意味着如果您在任何时候要为项目添加更多内容,那么定位它们会遇到很多问题。
例如,如果您想在#down
下方添加另一个容器(可能是页脚),则在您的第一个选项中,它将放置在标题下方的#down
容器重叠处。在第二个选项中,它将放置在您想要的位置。
答案 1 :(得分:1)
填补空间的一种方法是使用flexbox
。
.container {
display: flex;
flex-direction: column;
height: 200px;
}
#up {
background: yellow;
flex: 0 0 50px;
}
#down {
background: orange;
flex: 1 1 auto;
}

<div class="container">
<div id="up">
up
</div>
<div id="down">
down
</div>
</div>
&#13;