我需要用#second
div填充#first
下#wrapper
的剩余垂直空间。
我需要一个唯一的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>
8条答案
按热度按时间0ve6wy6x1#
您可以使用CSS Flexbox来代替另一个显示值,Flexbox布局(Flexible Box)模块旨在提供一种更有效的方式来布局,对齐和分配容器中项目之间的空间,即使它们的大小未知和/或动态。
jsfiddle Example
如果你想完全支持IE9或更低版本的旧浏览器,你必须使用flexy这样的polyfill,这个polyfill支持Flexbox模型,但只支持2012年规格的Flexbox模型。
最近,我发现另一个polyfill来帮助您与Internet Explorer 8 & 9或任何不支持Flexbox模型的旧浏览器,我仍然没有尝试过,但我离开链接here
你可以找到一个有用的和complete Guide to Flexbox model由克里斯coyer here
ee7vknir2#
使用CSS伸缩框(MDN Web Docs)。
sigwle7e3#
您可以使用
#second
div上的position:absolute;
执行此操作,如下所示:根据布局和div中的内容,您可以让它更简单,使用更少的标记,如下所示:
j7dteeu84#
如果你可以添加一对额外的div,那么你的html看起来就像这样:
您可以使用
display:table
属性:Example
q9rjltbz5#
您是否尝试过将 Package 器高度更改为vh而不是%?
例如,当我想用渐变背景填充页面时,这对我来说效果很好。
jckbn6z76#
如果你不想让你的主容器有固定的高度(顶部,底部,...),你可以简单地使用这个css-file来得到一个灵活的容器,它使用剩余的空间,包括工作!!!滚动条
Fiddler
nkkqxpd97#
您所需要的只是一点改进的标记。将第二个 Package 在第一个中,它将在下呈现。
Demo
7eumitmz8#
您可以只添加overflow:auto选项: