html - 填充多行 flex 布局中剩余的水平空间(“flex-grow:1”不起作用)
问题描述
期望的结果
蓝色单元格必须填充剩余的水平空间。硬代码已达到以下视图。
上市和小提琴
<div class="PseudoTable" role="table">
<div class="Key" role="columnheader">A</div>
<div class="Value" role="cell">Value 1</div>
<div class="Key" role="columnheader">AAA</div>
<div class="Value" role="cell">Value 2</div>
<div class="Key" role="columnheader">AAAAA</div>
<div class="Value" role="cell">Value 3</div>
<div class="Key" role="columnheader">AAAAAAA</div>
<div class="Value" role="cell">Value 4</div>
</div>
.PseudoTable {
width: 300px;
display: flex;
flex-wrap: wrap;
gap: 18px 8px;
}
.Key {
background: #FFE082;
}
.Value {
flex-grow: 1;
background: #90CAF9;
}
最明显的解决方案(flex-grow: 1
for .Value
)不起作用。
当前显示为:
不可接受的解决方案
请不要更改标记。行包装器中的每个.Key
和.Value
对的包装是简单的解决方案,但如果我接受它,我没有问这个问题。多行 flex(和网格)布局概念正在避免行包装器!
解决方案
关键是,flexbox 并不意味着这样做。它的目的是在一个轴(水平或垂直)上对齐一堆盒子。有可能让对象换行到下一行,但仅此而已。
您要实现的目标确实需要一个行元素,以便每一对都可以在全宽的基础上工作。
但是,你想做的实际上是可行的……好旧的浮动。
.PseudoTable {
width: 300px;
}
.Key {
background: #FFE082;
float: left;
clear: left;
margin-right: 8px;
}
.Value {
background: #90CAF9;
overflow: auto;
margin-bottom: 18px;
}
<div class="PseudoTable" role="table">
<div class="Key" role="columnheader">A</div>
<div class="Value" role="cell">Value 1</div>
<div class="Key" role="columnheader">AAA</div>
<div class="Value" role="cell">Value 2</div>
<div class="Key" role="columnheader">AAAAA</div>
<div class="Value" role="cell">Value 3</div>
<div class="Key" role="columnheader">AAAAAAA</div>
<div class="Value">Value 4</div>
</div>
但请注意,这有很大的警告,如果要更改内容,可能会表现不佳。检查如果将lipsum 放入Key 或Value 单元格会发生什么。
推荐阅读
- ios - IOS 上的 NotificationHub 注册问题(React Native)
- pyspark - 如何正确使用 Pyspark 中的 ChiSquareTest 函数?
- php - XAMPP 能够在打印 HTTP 后修改标头
- html - 当信息来自 php 站点上的 mysql 时,有没有办法进行名称换行?
- fancybox-3 - Fancybox3 位置标题正下方图像
- authentication - 通过 curl 在 wso2 中进行用户身份验证
- ruby-on-rails - Presenter 中的模板路径问题 (ActionView::Template::Error (Missing partial...)
- javascript - 如何根据边的数组对象内的数据选择边?
- azure-data-explorer - Azure 数据资源管理器是否会在排队的引入中自动处理引入的瞬时故障?
- dicom - 有没有一种简单的方法可以找到 DICOM 标签的类型?