填充剩余的垂直空间

我需要在#first#second div之间填充#wrapper剩余垂直空间

我只需要一个CSS解决方案。

HTML:

<div id="wrapper">
    <div id="first"></div>
    <div id="second"></div>
</div>

CSS:

#wrapper
{
   width:300px;
   height:100%;
}

#first
{
   width:300px;
   height:200px;
   background-color:#F5DEB3;
}

#second
{
   width:300px;
   height:100%; //<-----This should fill the remaining space
   background-color:#9ACD32;
}

你可以用position:absolute;来做到这一点position:absolute;#second div像这样:

小提琴

CSS:

#wrapper{
    position:relative;
}

#second {
    position:absolute;
    top:200px;
    bottom:0;
    left:0;
    width:300px;
    background-color:#9ACD32;
}

编辑:替代解决方案

根据您的布局和您在这些div中的内容,您可以使其更简单,并且使用较少的标记:

小提琴

HTML:

<div id="wrapper">
    <div id="first"></div>
</div>

CSS:

#wrapper {
    height:100%;
    width:300px;
    background-color:#9ACD32;
}
#first {
    background-color:#F5DEB3;
    height: 200px;
}

您可以使用CSS Flexbox代替另一个显示值。Flexbox Layout(Flexible Box)模块旨在提供一种更有效的方式来布置,对齐和分配容器中的项目之间的空间,即使它们的大小未知和/或动态。

/* CONTAINER */
#wrapper
{
   width:300px;
   height:300px;
    display: -webkit-box; /* OLD - iOS 6-, Safari 3.1-6 */
    display: -moz-box; /* OLD - Firefox 19- (buggy but mostly works) */
    display: -ms-flexbox; /* TWEENER - IE 10 */
    display: -webkit-flex; /* NEW - Chrome */
    display: flex; /* NEW, Spec - Opera 12.1, Firefox 20+ */
    -ms-flex-direction: column;
    -moz-flex-direction: column;
    -webkit-flex-direction: column;
    flex-direction: column;
}

/* SOME ITEM CHILD ELEMENTS */
#first
{
   width:300px;
    height: 200px;
   background-color:#F5DEB3;

}

#second
{
   width:300px;
   background-color: #9ACD32;
    -webkit-box-flex: 1; /* OLD - iOS 6-, Safari 3.1-6 */
    -moz-box-flex: 1; /* OLD - Firefox 19- */
    -webkit-flex: 1; /* Chrome */
    -ms-flex: 1; /* IE 10 */
    flex: 1; /* NEW, */
}

jsfiddle例子

如果你想完全支持像IE9或以下版本的旧浏览器,你将不得不使用像flexy这样的polyfill,这个polyfill支持Flexbox模型,但只支持2012版Flexbox模型。

最近,我发现另一个polyfill可以帮助您使用Internet Explorer 8和9或任何不支持Flexbox模型的旧浏览器,但我仍然没有尝试过,但是我将链接留在此处

您可以在这里找到Chris Coyer提供的有用的,完整的Flexbox模型指南


Flexbox解决方案

注意:如果受支持的浏览器需要,请添加灵活的供应商前缀。

html, body {
  height: 100%;
}

.wrapper {
  display: flex;
  flex-direction: column;
  width: 300px;
  height: 100%;
}

.first {
  height: 50px;
}

.second {
  flex-grow: 1;
}
<div class="wrapper">
  <div class="first" style="background:#b2efd8">First</div>
  <div class="second" style="background:#80c7cd">Second</div>
</div>
链接地址: http://www.djcxy.com/p/88301.html

上一篇: Fill remaining vertical space

下一篇: HTML table with 100% width, with vertical scroll inside tbody without td wdth