【发布时间】:2018-10-18 10:26:19
【问题描述】:
使用弹性容器和flex-wrap: wrap 设置,您可以使用justify-content: center 将溢出的项目对齐到中心。
有没有办法使用 CSS 网格实现溢出网格项的相同行为?
我已经创建了一支笔来显示所需的 flex 行为
.container-flex {
display: flex;
flex-wrap: wrap;
justify-content: center;
}
.container-flex .item {
width: 33.33%;
background: green;
border: 1px solid;
}
.container-grid {
display: grid;
grid-template-columns: repeat(3, 1fr);
}
.container-grid .item {
background: red;
border: 1px solid;
}
* {
box-sizing: border-box;
}
<h3>Flex</h3>
<div class="container-flex">
<div class="item">item</div>
<div class="item">item</div>
<div class="item">item</div>
<div class="item">item</div>
<div class="item">item</div>
<div class="item">item</div>
<div class="item">item</div>
</div>
<h3>Grid</h3>
<div class="container-grid">
<div class="item">item</div>
<div class="item">item</div>
<div class="item">item</div>
<div class="item">item</div>
<div class="item">item</div>
<div class="item">item</div>
<div class="item">item</div>
</div>
【问题讨论】:
-
以一般的方式我会说不,因为这不是网格的用途......但对于特定情况,我们总能找到解决方法
-
@johnny 我不认为这是重复的,这个问题是关于在网格单元中居中文本/项目,这与处理网格项目本身的包装和居中非常不同
-
我收回了。
-
是什么让您认为 Flexbox 和 Grid 可以做到这一点?如果,那么为什么我们需要两者,一个就可以了。它们是两个完全不同的东西,虽然有一些共同点,有些则没有。我们两者都需要,因为没有一个解决方案可以处理所有事情。