我想拥有。expandToFill div展开以填充剩余的屏幕高度。我用flexbox做了一些东西,因为这似乎是最简单的解决方案。它必须以这种方式嵌套,请不要更改html。
对象的高度值。菜单分区
.wrapper {
height: 100vh;
display: flex;
flex-direction: column;
}
.router {
flex-grow: 1;
}
.container {
display: flex;
flex-direction: column;
}
.menu {
background-color: red;
height: 20px;
}
.expandToFill {
flex-grow: 1;
background-color: blue;
}
<div class="wrapper">
<div class="router">
<div class="container">
<div class="menu">
</div>
<div class="expandToFill">
</div>
</div>
</div>
</div>
https://jsfiddle.net/BAR24/a2m4cjsw/17/
SO上也有类似的问题,但他们没有问嵌套的可扩展div。
编辑:我接受了一个答案,但意识到它并没有完全解决这个问题。我认为这是一个非常普遍的问题,值得一个全面的工作解决方案。
2条答案
按热度按时间brgchamk1#
hi3rlvi22#
解决这个问题的最简单的方法是添加:
JS Fiddle demo。
之所以这样做,是因为它确保了所有元素都占据了可用的全部垂直空间(
.menu
除外,它的高度是专门设置的),这允许以下规则:以生效,因为元素现在有一个定义的空间,它可以扩展到其中。