html - 如何在 flexbox 列项中赋予 div 100% 的高度?
问题描述
我想给一个弹性盒子项目内的一个 div 100% 的高度,但我不能让它工作。情况如下:
#outer (display: fled, flex-direction: column, height: 100px)
#header (height: auto)
#middle (flex-grow: 1)
#inner (height: 100%)
我想#inner
跨越#outer
. 基本上,我希望红色部分覆盖下面小提琴中的所有绿色部分。
#outer {
height: 100px;
display: flex;
flex-direction: column;
}
#header {
height: auto;
}
#middle {
flex-grow: 1;
background-color: green;
}
#inner {
height: 100%;
background-color: red;
}
<div id="outer">
<div id="header">
Header
</div>
<div id="middle">
<div id="inner">
This should be full height.
</div>
</div>
</div>
不同的浏览器似乎有不同的处理方式:
- Firefox 和 IE 以我想要的方式显示它,全是
#middle
红色,没有绿色可见。 - Chrome 将其呈现
#inner
为height: auto
.
我该如何解决这个问题,以便它也可以在 Chrome 上运行?最好我不想放弃 flexbox。
解决方案
只需添加flex-shrink: 1
到#middle
,或者只是使用速记flex: 1
使其也可以在 Chrome 上运行。
#outer {
height: 100px;
display: flex;
flex-direction: column;
}
#header {
height: auto;
}
#middle {
flex: 1;
background-color: green;
}
#inner {
height: 100%;
background-color: red;
}
<div id="outer">
<div id="header">
Header
</div>
<div id="middle">
<div id="inner">
This should be full height.
</div>
</div>
</div>
推荐阅读
- html - 如何定位 html 元素类名称而不是元素?
- python - 使用 mock.patch 模拟函数内部的变量
- html - 图像大小未重新调整以适应 flexbox
- javascript - Discord 音乐机器人由于某种原因停止工作
- c++ - 使用模板时:错误:没有匹配的构造函数用于初始化
- windows - 在 Windows 上从 Apache CGI 运行 gswin64c
- python - ValueError:输入 0 与层 lstm_15 不兼容:预期 ndim=3,发现 ndim=2
- ruby-on-rails - 为什么从路由中删除索引后 POST 的帮助程序路径会发生变化?
- python - 如何在烧瓶应用程序中正确存储全局变量
- php - 如何使用 .htaccess 从最后一段中删除 URL 中的“索引”一词