css - 如何使用 Flexbox 使 div 填充剩余的垂直空间?
问题描述
我想在页面中垂直堆叠 3 个元素(页眉、页脚和一些内容)。页眉和页脚 div 具有固定的高度。如何使内容 div(中间的那个)占据剩余的垂直空间?
我对 Flexbox 的尝试
.wrapper {
display: flex;
flex-direction: column;
width: 100%;
}
.header {
background-color: red;
height: 100px;
}
.content {
background-color: blue;
flex: 1;
}
.footer {
background-color: green;
height: 30px;
}
<div class="wrapper">
<div class="header" />
<div class="content" />
<div class="footer" />
</div>
解决方案
您的 css 已经在做您想要实现的目标。
flex: 1
是简写flex-grow: 1
由于其他项目的高度是固定的,因此flex: 1
会导致您的内容填充 flexbox 中的剩余空间。然而问题是你的 flexbox 容器没有高度,如果你想覆盖整个页面,你应该添加height: 100vh
到容器中。
.wrapper {
display: flex;
flex-direction: column;
width: 100%;
height: 100vh;
}
推荐阅读
- java - 分析什么堆消耗了 JUnit JavaFx
- android - 如何在 Android Studio 中创建带有句柄的隐藏可拖动窗格
- python - 在python中将文本文件转换为字典
- python-3.x - 将多个输出放入一个列表
- angular - 如何检测离子5中不同页面上的离子菜单关闭事件
- flutter - 布尔返回 null - 颤振
- python - Python、pandas 和 NLP:通过根据其他列中的值划分文本来创建语料库
- javascript - Javascript DOM 双向扩展文本选择一个词
- spring-boot - 将 SuppressWarnings 添加到 Spring 控制器生成 404 未找到
- cart - 我的大型商务创建购物车 API 调用失败,因为我的产品选项未分配值。我怎样才能给它赋值?