【发布时间】:2019-09-15 23:51:39
【问题描述】:
我想按原样在第一行显示 4 个项目,但在第二行只显示 3 个,然后在第三行显示 4 个,在第四行显示 3 个,依此类推...
我已经通过nth-child 实现了这一点,但是代码太多而且不够灵活和可扩展。
flex 可以吗?还是网格?
* {
box-sizing: border-box;
}
.grid-wrapper {
display: flex;
flex-wrap: wrap;
justify-content: center;
}
.grid-wrapper .grid-item {
width: 25%;
text-align: center;
padding: 5px;
}
p {
background: #ddd;
padding: 15px;
}
<div class="grid-wrapper">
<div class="grid-item">
<p>Grid Item</p>
</div>
<div class="grid-item">
<p>Grid Item</p>
</div>
<div class="grid-item">
<p>Grid Item</p>
</div>
<div class="grid-item">
<p>Grid Item</p>
</div>
<div class="grid-item">
<p>Grid Item</p>
</div>
<div class="grid-item">
<p>Grid Item</p>
</div>
<div class="grid-item">
<p>Grid Item</p>
</div>
<div class="grid-item">
<p>Grid Item</p>
</div>
<div class="grid-item">
<p>Grid Item</p>
</div>
<div class="grid-item">
<p>Grid Item</p>
</div>
</div>
【问题讨论】:
-
所有商品的尺寸必须相同?像这样的东西对你有用吗? jsfiddle.net/jxt5cm7u/2
-
那么...你想在哪里定义每行显示多少项目?
nth-child语法允许您以编程方式执行此操作。否则,您可以在 HTML 中使用data-属性并在 CSS 中使用属性选择器来关闭它。