如何制作 3x3 数据显示?我正在使用 foreach 循环显示数据,这是输出:
这是我的 blade.php 代码
<div class="coupon_div">
@foreach($coupons as $coupon)
<div class="column coupon_col">
<div class="coupon_cont pad">
<div class="coupon_details">
<h3 class="column_title coupon_title">
<span class="bullets">◼ </span>
{{ $coupon->name }}
</h3>
<p class="column_text coupon_text"> {{ $coupon->description }} </p>
<button class="btn_gold btn-coupon" type="button" name="button" onclick="window.open('{{ $coupon->file_path }}')"> Open </button>
</div>
</div>
</div>
@endforeach
</div>
我的CSS
.coupon_div {
width: 100%;
display: flex;
justify-content: space-between;
margin-bottom: 5px;
}
.column {
width: 345px;
height: auto;
background-color: white;
position: relative;
}
.coupon_col {
padding: 0;
margin-bottom: 30px;
}
.coupon_cont {
width: 345px;
}
.coupon_col .pad {
padding: 0;
}
.coupon_details {
padding: 32px;
border: 1px solid #dcdcdc;
}
如果我只显示 3 个元素,它有适当的间距。我的预期输出是这样的:
我怎样才能使用 css 获得这个结果?因为如结果所示,它仅在 1 行中显示数据。我发现了一些几乎相同的问题 here但不知何故无法让它发挥作用。
最佳答案
感谢您的回答 :) 我已经弄明白了。我刚刚从以下位置删除了 coupon_div
类的一部分:
.coupon_div {
width: 100%;
display: flex;
justify-content: space-between;
margin-bottom: 5px;
}
收件人:
.coupon_div {
justify-content: space-between;
margin-bottom: 5px;
}
并添加了一些检查:
<div class="column coupon_col {{ $key % 3 == 1 ? 'addmargin' : '' }}">
因此,如果该元素位于第 2、5 和 7 位,它将与其他 2 个元素有边距。
.addmargin {
margin: 0px 15px;
}
有了这个,我就能得到我想要的结果。
关于css - 使用 css 以 3 列和 3 行显示元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55298920/