html - 如何强制flexbox最后一行的项目选择所有剩余高度(在flex-row模式下)?
问题描述
考虑到我们有这个代码(请测试它):
.x{
display: flex;
flex-wrap: wrap;
align-content: start;
background-color: #0bd;
width: 420px;
height: 220px;
overflow: auto;
}
.x>*{
width: 25%;
height: 45px;
border: solid 1px #fff;
box-sizing: border-box;
}
.N, .L {
width: 50%;
}
<div class='x'>
<div>A</div>
<div>B</div>
<div>C</div>
<div>D</div>
<div class='N'>N</div>
<div class='L'>L</div>
</div>
我需要这样的东西:
.x{
display: flex;
flex-wrap: wrap;
align-content: start;
background-color: #0bd;
width: 420px;
height: 220px;
overflow: auto;
}
.x>*{
width: 25%;
height: 45px;
border: solid 1px #fff;
box-sizing: border-box;
}
.N, .L {
width: 50%;
}
.N {
height: 175px;
background-color: #f0f;
}
<div class='x'>
<div>A</div>
<div>B</div>
<div>C</div>
<div>D</div>
<div class='N'>N</div>
<div class='L'>L</div>
</div>
要点:
- 我们必须使用
flex-flow: row
. - (
.N
N 类)必须垂直填充所有剩余空间(剩余高度)。 - 我们不应该使用嵌套元素。(而且我们根本无法更改此 HTML 代码。我们必须
css
仅使用它的纯代码。)。 - 在我们的案例中,唯一的选择是
flex-box
. - 我们不能使用常量
height
或calc(100% - xxx)
,因为我们没有xxx
。 - 我们可能有两行以上,并且
.N
可能出现在第三行(或第四行,...)。
非常感谢。
解决方案
推荐阅读
- typescript - TypeScript 未在 CMD 中编译
- angular - Angular 7:数据显示在页面上,但控制台具有无法读取属性
- php - 扩展公共静态属性
- codeigniter - Ci会话cookie复制到不同的浏览器
- html - 如何在多个内部制作元素
一个 即使在宽度?(角度) - python - 将文件中的行放入多个变量中会产生奇怪的不一致
- c# - 如何为 HttpClient 调用配置网络跟踪 Dotnet 核心?
- reactjs - 在 IIS8 Windows 服务器 (Azure VM) 上部署 React App
- php - 如何从 html 转换为 php
- jenkins - 用于通过 ID(不是用户名)删除 Jenkins 全局凭据用户的 Groovy 脚本