html - Css Grid:将2行中不同数量的项目居中对齐
问题描述
我必须将 7 div
s(图像)放在两行中,第一行 3 个,第二行 4 个。顶部 3 div
s 应该居中,底部 4 可以占据所有空间。
这是我所做的:
.content {
display: grid;
grid-gap: 10px;
grid-template-columns: 1fr repeat(3, 170px) 1fr;
grid-template-areas: ". item1 item2 item3 ."
"item4 item5 item6 item7";
grid-template-rows: 1fr 1fr;
}
.content .box {
width: 170px;
height: 170px;
border: solid 1px #000;
}
.content.box:nth-child(1) {
grid-area: box1;
}
.content.box:nth-child(2) {
grid-area: box2;
}
.content.box:nth-child(3) {
grid-area: box3;
}
.content.box:nth-child(4) {
grid-area: box4;
}
.content.box:nth-child(5) {
grid-area: box5;
}
.content.box:nth-child(6) {
grid-area: box6;
}
.content.box:nth-child(7) {
grid-area: box7;
}
<div class="content">
<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 class="box">6</div>
<div class="box">7</div>
</div>
解决方案
网格,顾名思义,必须成形为网格。这意味着列数必须是所有行的空间。
因此,浏览器不接受您的区域样式,因为它的第一行有 5 列,第二行有 4 列。
@kukkuz 已经发布了更正此问题的答案。在这里,您有另一种可能性,在我的观点中更适合您的要求。
无论如何,这种布局的最佳解决方案可能是使用 flex (因为布局不是真正的网格)
.content {
display: grid;
grid-gap: 10px;
grid-template-columns: repeat(8, 100px);
grid-template-areas: "empt box1 box1 box2 box2 box3 box3 emp2"
"box4 box4 box5 box5 box6 box6 box7 box7";
grid-template-rows: 1fr 1fr;
}
.content .box {
width: 180px;
height: 170px;
border: solid 1px #000;
}
.content .box:nth-child(1) {
grid-area: box1;
}
.content .box:nth-child(2) {
grid-area: box2;
}
.content .box:nth-child(3) {
grid-area: box3;
}
.content .box:nth-child(4) {
grid-area: box4;
}
.content .box:nth-child(5) {
grid-area: box5;
}
.content .box:nth-child(6) {
grid-area: box6;
}
.content .box:nth-child(7) {
grid-area: box7;
}
<div class="content">
<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 class="box">6</div>
<div class="box">7</div>
</div>
推荐阅读
- python - 考虑到可能的列排列,删除 spark 数据帧重复项
- mongodb - 使用单独的过滤器对数据进行分组(MongoDB 查询)
- sql - Spark sql-基于另一个聚合选项进行聚合
- node.js - 如何使用用两种不同语言(Flask、Node.js)编写的后端 docker 在单个服务器上运行
- android - 使用 customword 数组适配器而不是资源字符串数组 KOTLIN
- javascript - 询问如何在 Telegram 中为内联查询创建数组
- r - 在 R 中选择多个历史日期后,Rvest Web 抓取
- c++ - 将 [[no_unique_address]] 与空基类继承组合时得到意外结果
- go - 使用 GORM 将接口设置为具有许多实现的属性
- javascript - babel 如何理解何时导入本地路径以及何时从同名库中导入?