CSS 如果容器为空,则创建元素取 1,5 space 的网格
CSS create grid with element take 1,5 space if container empty
我有这样的容器:
目前元素5后面有一个空的case。所以我想居中第二行的元素:
对于我已经完成的代码:
.country-grid
display: grid
grid-template-columns: repeat(auto-fill,minmax(320px, 1fr))
这取决于确切的用例以及您期望的网格项数。如果你知道你总是会有 5 个项目,你可以只设置特定数量的列并偏移第 4 个项目,如下所示:
.grid {
display: grid;
grid-template-columns: repeat(6, 1fr);
}
.grid-item {
grid-column: span 2;
}
.grid-item:nth-child(4) {
grid-column: 2 / span 2;
}
如果布局可以包含任意数量的项目,并且您正在寻找一种更流畅的包装方法,那么我建议为此使用 flex,因为它的设置要简单得多像这样对齐:
.flex {
display: flex;
flex-wrap: wrap;
justify-content: center;
}
.flex-item {
width: calc(100% / 3);
min-width: 320px;
}
我有这样的容器:
目前元素5后面有一个空的case。所以我想居中第二行的元素:
对于我已经完成的代码:
.country-grid
display: grid
grid-template-columns: repeat(auto-fill,minmax(320px, 1fr))
这取决于确切的用例以及您期望的网格项数。如果你知道你总是会有 5 个项目,你可以只设置特定数量的列并偏移第 4 个项目,如下所示:
.grid {
display: grid;
grid-template-columns: repeat(6, 1fr);
}
.grid-item {
grid-column: span 2;
}
.grid-item:nth-child(4) {
grid-column: 2 / span 2;
}
如果布局可以包含任意数量的项目,并且您正在寻找一种更流畅的包装方法,那么我建议为此使用 flex,因为它的设置要简单得多像这样对齐:
.flex {
display: flex;
flex-wrap: wrap;
justify-content: center;
}
.flex-item {
width: calc(100% / 3);
min-width: 320px;
}