【发布时间】:2016-07-27 23:25:03
【问题描述】:
我有一些需要注意的 Flexbox 标记。
除了最后一件事,一切都按预期工作。我在列布局中有一些div,其中两个是由内容或高度设置控制的高度,一个是不受控制的。最后一个不受高度控制(DEMO 中的黄色)应该采用这样的高度,以便填充其父 div 中剩余的垂直空间(绿色)。
即使使用这种响应式设计缩放窗口,黄色 div 也应始终填充到绿色父 div 的底部。
<div class="flexbox">
<div class="col">
<h3>RED</h3>
<p>Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Vestibulum tortor quam, feugiat vitae, ultricies eget, tempor sit amet, ante. Donec eu libero sit amet quam egestas semper. Aenean ultricies mi vitae est.
Mauris placerat eleifend leo.</p>
<p>Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Vestibulum tortor quam, feugiat vitae, ultricies eget, tempor sit amet, ante. Donec eu libero sit amet quam egestas semper. Aenean ultricies mi vitae est.
Mauris placerat eleifend leo.</p>
<p>Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Vestibulum tortor quam, feugiat vitae, ultricies eget, tempor sit amet, ante. Donec eu libero sit amet quam egestas semper. Aenean ultricies mi vitae est.
Mauris placerat eleifend leo.</p>
</div>
<div class="col">
<div class="flexbox2">
<div>
<h3>GREEN</h3></div>
<div class="col1">
Set at responsive height 10 vw.
</div>
<div class="col1">
This div should adapt its height automatically to fill out the remaining space.
</div>
</div>
</div>
<style>
.flexbox {
display: -webkit-box;
display: -moz-box;
display: -ms-flexbox;
display: -webkit-flex;
display: flex;
-webkit-flex-direction: row;
-moz-flex-direction: row;
-ms-flex-direction: row;
flex-direction: row;
}
.flexbox .col {
flex: 1;
}
.flexbox .col:nth-child(1) {
background: red;
order: 0;
padding: 5px;
}
.flexbox .col:nth-child(2) {
background: green;
order: 1;
padding: 5px;
color: white;
}
.flexbox2 {
display: -webkit-box;
display: -moz-box;
display: -ms-flexbox;
display: -webkit-flex;
display: flex;
-webkit-flex-direction: column;
-moz-flex-direction: column;
-ms-flex-direction: column;
flex-direction: column;
padding: 5px;
}
.flexbox2 .col1 {
flex: 1;
}
.flexbox2 .col1:nth-child(2) {
background: orange;
height: 10vw;
padding: 5px;
}
.flexbox2 .col1:nth-child(3) {
background: yellow;
padding: 5px;
color: black;
}
</style>
【问题讨论】: