css - 高度设置为 0 的全高弹性项目
问题描述
我有以下代码用于使用 flexbox 进行开发。
#container {
display: flex;
justify-content: space-around;
width: 100%;
}
.content {
border: 1px solid black;
display: flex;
flex-direction: column;
height: 400px;
width: 400px;
}
#item1 {
background-color: red;
flex-grow: 1;
height: 0;
}
#item2 {
background-color: green;
flex-grow: 1;
height: 100px;
}
#item3 {
background-color: blue;
flex-grow: 1;
height: 900px;
}
<div id="container">
<div class="content">
<div id="item1"></div>
</div>
<div class="content">
<div id="item2"></div>
</div>
<div class="content">
<div id="item3"></div>
</div>
</div>
我知道该设置flex-grow: 1
会占用其父级的剩余空间。然而,height
无论它的价值是多少,该属性似乎都没有效果。
解决方案
原因是您的 flex-direction 设置为 column,这意味着 flex-grow 从上到下做出反应,因此 flex-grow 响应的是高度而不是宽度。
另一个问题是,为什么 flex-direction 是列,但是宽度被填满了,因为它是一个显示为块的 <div>,宽度被自动填充display: block;
推荐阅读
- r - 从 2004 年 4 月开始按月创建时间序列
- regex - 选择中间词的正则表达式,以空格分隔
- cppcheck - cppcheck,内联抑制如何与 misra 插件一起使用
- meteor - Meteor - 发布所有作者的最佳方法,仅发布他们的最后一篇文章
- wildfly - CLI 脚本 - 使用环境属性启用提供程序
- sql - PostgreSQL中的全文搜索,根据每个关键字的不同分数进行自定义排名
- r - 使用 R 中的 if 语句从栅格创建新栅格
- xamarin.android - Messenger:如何等待消息被处理?
- php - 无法从android中的服务器解析日期时间
- php - 此页面包含以下错误:第 2 行第 6 列的错误:XML 声明只允许在文档的开头