我需要用div填充#first
下的#包装器
的剩余垂直空间。
我需要一个唯一的CSS解决方案。
#wrapper {
width: 300px;
height: 100%;
}
#first {
width: 300px;
height: 200px;
background-color: #F5DEB3;
}
#second {
width: 300px;
height: 100%;
background-color: #9ACD32;
}
<div id="wrapper">
<div id="first"></div>
<div id="second"></div>
</div>
您可以通过以下方式在第#秒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;
}
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>
您可以使用CSS Flexbox来代替另一个显示值,Flexbox布局(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, */
}
JSFIDLE示例
如果您希望完全支持IE9或以下的旧浏览器,则必须使用flexy等polyfill,该polyfill支持Flexbox型号,但仅支持2012规格的Flexbox型号。
最近我发现另一个polyfill可以帮助您使用Internet Explorer 8
您可以在这里找到Chris Coyer的Flexbox模型的有用且完整的指南
问题内容: 我需要填写 剩余的垂直空间 的下用DIV。 我只需要一个CSS解决方案。 问题答案: 您可以像这样在div 上执行此操作: 小提琴 CSS: 编辑:替代解决方案 根据您的布局和这些div中的内容,可以使它变得更简单,并且标记更少,如下所示: HTML: CSS:
在3行布局中: 顶部行的大小应根据其内容确定 底部行应具有固定的高度(以像素为单位) 中间行应展开以填充容器 问题是,随着主要内容的扩展,它压扁了页眉和页脚行: HTML: CSS: 小提琴: http://jsfidle.net/7ylfl/1/(工作,内容小) http://jsfidle.net/7ylfl/(已断开,内容较大) 我很幸运,我可以使用CSS中最新的和最好的浏览器,而不是传统的
我有一个基本的flexbox布局,如下所示。。 我试图使顶部的div填充剩余的空间,底部的div是动态的,因此高度根据文本的不同而变化。我的结果是这样的。。 在这种情况下,flexbox是最好的选择吗?
问题内容: 我有这个标题栏。 我需要searchBar来填补div中剩余的空白。我该怎么做? 这是我的CSS 问题答案: 您可以使用CSS表格单元格实现此布局。 稍微修改您的HTML,如下所示: 只需删除两个元素周围的wrapper 元素即可。 应用以下CSS: 适用于并给它100%的宽度。 对于,,,适用。 对于,将宽度设置为90%,这将迫使所有其他元素计算出缩小以适合的宽度,搜索栏将展开以填充
问题内容: 我正在一个Web应用程序上工作,我希望其中的内容能填满整个屏幕的高度。 该页面具有标题,其中包含徽标和帐户信息。这可以是任意高度。我希望内容div将页面的其余部分填充到底部。 我有一个标题和一个内容。目前,我正在使用表格进行布局,如下所示: CSS和HTML 页面的整个高度已填满,不需要滚动。 对于content div中的任何内容,设置将其放在标题的正下方。有时,内容将是一个实际表,
问题内容: 我有2个div: 页面左侧有一个,右侧是一个。左侧的一个宽度固定,我希望右侧的一个填充剩余空间。 问题答案: 这似乎可以完成您想要的。