html - 填充行之间的大间隙
问题描述
在代码box-2
和box-3
行高中,自动拉伸到行box-1
中最高项目的高度。box-2
和box-3
列中有一个额外的间隙。我希望这个空白被box-5
第二行的那个填补。小提琴
.container {
display: grid;
grid-template-columns: 20% 40% 40%;
grid-gap: 20px;
}
.container > div {
border: 1px solid red;
}
.box-1 {
background-color: lightgreen;
height: 300px;
}
.box-2 {
background-color: lightsalmon;
height: 150px;
}
.box-3 {
background-color: lightsalmon;
height: 150px;
}
.box-4 {
background-color: lightskyblue;
height: 500px;
}
.box-5 {
background-color: lightseagreen;
grid-column: 2/-1;
}
<div class="container">
<div class="box-1"></div>
<div class="box-2"></div>
<div class="box-3"></div>
<div class="box-4"></div>
<div class="box-5"></div>
</div>
这是我正在寻找的输出
解决方案
您直接设置网格项的高度,而不是在网格容器上定义任何行。因此,网格算法必须创建行来容纳网格区域。它只需要创建两行即可完成布局。这就是框 2 和框 3 下方有很大间隙的原因。框 1 最高,设置顶行的高度。
您想要的布局至少需要三行。
试试这个方法:在容器级别设置行(和高度),然后设置网格区域。
.container {
display: grid;
grid-template-columns: 1fr 2fr 2fr;
grid-template-rows: repeat(3, 150px);
grid-gap: 10px;
}
.box-1 {
grid-column: 1;
grid-row: 1 / span 2;
background-color: lightgreen;
}
.box-2 {
grid-column: 2;
grid-row: 1;
background-color: lightsalmon;
}
.box-3 {
grid-column: 3;
grid-row: 1;
background-color: lightsalmon;
}
.box-4 {
grid-column: 2 / -1;
grid-row: 2 / 4;
background-color: lightskyblue;
}
.box-5 {
grid-column: 1;
grid-row: 3;
background-color: lightseagreen;
}
<div class="container">
<div class="box-1">1</div>
<div class="box-2">2</div>
<div class="box-3">3</div>
<div class="box-4">4</div>
<div class="box-5">5</div>
</div>
如果您想要更多用于调整网格区域大小的选项,请增加行数/列数。
例如,而不是这个:
grid-template-rows: repeat(3, 150px)
...你可以这样做:
grid-template-rows: repeat(9, 50px)
...然后根据需要跨行跨越网格区域。
推荐阅读
- javascript - 将 async/await 与 for 循环一起用于嵌套的 Axios 调用
- html - 为什么这个 SVG 滤镜动画在 Edge 或 Chrome 中不起作用?
- swift - 字典用 .keys 改变索引位置——Swift
- c# - C# WebMethod - 更改字符串列表的参数名称
- x86 - RFO 计算英特尔 CPU 上的原子添加操作和缓存线锁定?
- javascript - jQuery 多步向导表单
- javascript - 我可以使用 createElement 创建自闭合元素吗?
- javascript - Javascript“变量”未定义
- android - (Unity) 如何在Android上读取旧游戏数据?
- r - 将对象作为函数参数列出,具有可覆盖的列表元素默认值