html - 如何使用 flexbox 填充容器的剩余高度?
问题描述
我想div
填充父容器的剩余高度。我知道周围还有许多其他类似的问题flexbox
,这个问题的常见解决方案是使用面向列的flexbox
包装器围绕增长以填充高度的内容。这对我不起作用。在下图中,我试图让绿色和粉红色内容的容器用红色边框填充父容器的剩余高度。
.container {
width: 600px;
height: calc(100vh - 100px);
border: 1px solid red;
}
.something-before {
background: lightblue;
height: 50px;
margin: 10px 0;
}
.text-wrap {
display: flex;
flex-direction: column;
}
.text-wrap>div {
flex-grow: 1;
}
.text-content {
display: flex;
flex-direction: row;
height: 100%;
}
.text-left {
width: 100px;
background: green;
height: 100%;
}
.text-right {
background: pink;
flex-grow: 1;
height: 100%;
}
<div class="container">
<div class="something-before"></div>
<div class="text-wrap">
<div>
<div class="text-content">
<div class="text-left">
Text<br />Text<br />Text<br />
</div>
<div class="text-right">
Text<br />Text<br />Text<br />
</div>
</div>
</div>
</div>
</div>
解决方案
display: flex
并且flex-direction: column
需要穿.container
不上.text-wrap
。你甚至不需要后者。然后,如果您戴上flex-grow: 1
它.text-content
,它将按预期工作:
.container {
width: 600px;
height: calc(100vh - 100px);
border: 1px solid red;
display: flex;
flex-direction: column;
}
.something-before {
background: lightblue;
height: 50px;
margin: 10px 0;
}
.text-content {
display: flex;
flex-grow: 1;
}
.text-left {
width: 100px;
background: green;
}
.text-right {
background: pink;
flex-grow: 1;
}
<div class="container">
<div class="something-before"></div>
<div class="text-content">
<div class="text-left">
Text<br />Text<br />Text<br />
</div>
<div class="text-right">
Text<br />Text<br />Text<br />
</div>
</div>
</div>
推荐阅读
- vb.net - 由于“未声明”错误,无法调用 form_Load 事件,但名称正确且事件位于相应的类中
- javascript - document.querySelectorAll("a") 返回带有 # url 的空白节点列表
- javascript - 评论 javascript 不工作。仅在页面重新加载后更新
- android - 如何将 Google 反向图像搜索限制在域中?
- javascript - 为什么我的折线图在 chartjs 中倒退?
- java - ORA-04054: 数据库链接 GMAIL.COM 不存在
- python - Pandas 时间序列:删除每个 ID 的行
- c++ - 有没有更有效的方法来解决字谜问题
- c++ - 将字符串解析为不区分大小写的 protobuf 枚举
- python - 如何复制具有多个通道的图像?