【发布时间】:2014-05-30 04:28:21
【问题描述】:
如何告诉 flexbox 布局行消耗浏览器窗口中剩余的垂直空间?
我有一个 3 行的 flexbox 布局。前两行是固定高度,但第三行是动态的,我希望它增长到浏览器的全高。
我在第 3 行有另一个 flexbox,它创建了一组列。为了正确调整这些列中的元素,我需要它们了解浏览器的完整高度——例如背景颜色和底部的项目对齐。主要布局最终会像这样:
.vwrapper {
display: flex;
flex-direction: column;
flex-wrap: nowrap;
justify-content: flex-start;
align-items: stretch;
align-content: stretch;
//height: 1000px;
}
.vwrapper #row1 {
background-color: red;
}
.vwrapper #row2 {
background-color: blue;
}
.vwrapper #row3 {
background-color: green;
flex 1 1 auto;
display: flex;
}
.vwrapper #row3 #col1 {
background-color: yellow;
flex 0 0 240px;
}
.vwrapper #row3 #col2 {
background-color: orange;
flex 1 1;
}
.vwrapper #row3 #col3 {
background-color: purple;
flex 0 0 240px;
}
<body>
<div class="vwrapper">
<div id="row1">
this is the header
</div>
<div id="row2">
this is the second line
</div>
<div id="row3">
<div id="col1">
col1
</div>
<div id="col2">
col2
</div>
<div id="col3">
col3
</div>
</div>
</div>
</body>
我尝试添加一个height 属性,当我将其设置为硬数字时该属性有效,但当我将其设置为100% 时无效。我知道height: 100% 不起作用,因为内容没有填满浏览器窗口,但我可以使用 flexbox 布局复制这个想法吗?
【问题讨论】:
-
为视觉效果点赞,你是如何制作它们的?
-
OmniGraffle 和 Pixelmator 用于修饰。