这是我的代码。
我希望元素.container
完全展开并占据.toplevel
的区域。
.toplevel {
height: 100%;
min-height: 800px;
border: solid 1px blue;
}
.container {
display: flex;
border: solid 1px red;
height: 100%;
flex: 0 1 auto;
flex-direction: column;
// min-height: 800px;
}
.up {
display: flex;
flex: 1 1 auto;
}
.down {
display: flex;
flex: 0 1 auto;
}

<div class="toplevel">
<div class="container">
<div class="up">
This is up
</div>
<div class="up">
This is down
</div>
</div>
</div>
&#13;
然而,似乎使.container
更高的高度的唯一方法是定义min-height
。它太不灵活了,因为我会为不同的设备外形提供不同的值。
我该如何解决?
答案 0 :(得分:3)
Simpy将display: flex
添加到.toplevel
并从height: 100%
删除.container
。
这项工作基于以下事实:可以使用align-items
属性控制弹性行项目的高度行为。由于它默认为stretch
,因此它将填充其父级高度。
作为一个注释,一般来说,当谈到Flexbox时,最好使用自己的属性而不是height
/ width
。通过这样做,您还可以获得更好的跨浏览器支持。
Stack snippet
.toplevel {
height: 100%;
min-height: 800px;
border: solid 1px blue;
display: flex; /* added */
}
.container {
display: flex;
border: solid 1px red;
/*height: 100%; removed */
flex: 1 1 auto; /* changed, flex row item need the grow value
to be 1 to fill its parent's width */
flex-direction: column;
}
.up {
display: flex;
flex: 1 1 auto;
}
.down {
display: flex;
flex: 0 1 auto;
}
<div class="toplevel">
<div class="container">
<div class="up">
This is up
</div>
<div class="down">
This is down
</div>
</div>
</div>
答案 1 :(得分:1)
使用列方向调整display:flex
,然后将flex:1
添加到容器中:
我认为你在代码中犯了一个错误,因为你添加了两个up
div,所以我更正了
.toplevel {
height: 100%;
min-height: 800px;
border: solid 1px blue;
display:flex;
flex-direction:column;
}
.container {
display: flex;
border: solid 1px red;
flex: 1;
flex-direction: column;
}
.up {
display: flex;
flex: 1 1 auto;
}
.down {
display: flex;
flex: 0 1 auto;
}
<div class="toplevel">
<div class="container">
<div class="up">
This is up
</div>
<div class="down">
This is down
</div>
</div>
</div>
答案 2 :(得分:1)
您可以撤销var b=[2]
的{{1}}和 var a = [1,2,2,2,5];
var b = [2];
const result = a.filter(function(el){
return /// which condition .?
});
:
height
&#13;
min-height
&#13;
答案 3 :(得分:0)
要使用百分比高度,您需要所有父母都有一个设定的高度。在你的情况下this.type = T
父.toplevel
,身高不高,body
身高.toplevel
不起作用,导致{{1}高度也失败了。
一个简单的解决方案是使用100%
单位而不是百分比设置.container
高度:
.toplevel
&#13;
vh
&#13;