【发布时间】:2017-01-12 17:45:43
【问题描述】:
请帮我解决这个任务。我们有 3 个 div 块。第一个 div 的高度设置为 100px(但在现实世界中它是动态值)。第二块具有固定的高度,并且有另一个块作为孩子。子块的高度应该延伸到屏幕底部。但是由于我们的第二个块是相对的,bottom:0 将意味着第二个块的底部。请问这种情况下的最佳实践是纯 CSS 吗?
body > div { height: 100px; }
.first { background: lightblue; }
.second {
background: lightgreen;
position: relative;
}
.second div {
position: absolute;
background: pink;
width: 50%;
height: 200px;
top: 100px;
}
<div class="first">The height of the block may vary greately.</div>
<div class="second">
<div>This DIV should take whole free space to the bottom of the screen.</div>
</div>
更新:
我可以通过将第二个 div 包装到额外的 div 中来实现效果(绝对宽度位置和底部:0)并将其保留为透明背景,但随后“其后面”的静态内容变得无法使用。这里是an example。
【问题讨论】:
-
哪个 div 应该占用剩余空间?第二个div还是第二个div的孩子?孩子的身高:200px。我想第二个会接受吗?
-
@jmag child 应该有剩余空间。 200px 是一个随机数。
-
为什么不能有 3 个 div 在同一级别,而不是嵌套?
-
@Panglosee 因为嵌套的 div 是菜单的一部分。
-
纯 css 的唯一方法是将嵌套的 div 固定到位置 - jsfiddle.net/eox0b8hq 因此高度不会受到相关容器的影响。
标签: html css css-position