我需要使用网格布局,但也需要一个水平线分隔每一行。
我唯一能找到的是对每个单元格应用边框,但这只有在有足够的单元格填充每行时才有效。
.wrapper {
display: grid;
grid-template-columns: repeat(3, 1fr);
grid-template-rows: repeat(3, 100px);
}
.box {
border-bottom: 2px solid #ffa94d;
padding: 1em;
}
<div class="wrapper">
<div class="box">One</div>
<div class="box">Two</div>
<div class="box">Three</div>
<div class="box">Four</div>
</div>
有没有一种方法可以修复上面的问题,使整行都有边框?
4条答案
按热度按时间cvxl0en21#
添加一个
grid-gap
等于你的边界的宽度,然后考虑梯度来实现这一点:另一个想法是考虑将伪元素添加到第1个,第4个,第7个..
(3n + 1)
个元素:h4cxqtbf2#
将表格想象成单元格的集合(非常类似于Excel电子表格)。您可以创建一个简单的单元格类,并将其附加到每个网格项中,以在不影响表格数据本身的情况下操作单元格。请考虑:
请注意,我只使用了一个网格行间距。如果你引入一个网格间距,或一个网格列间距,你的线将在列间距处断开(这可能是在某些情况下所期望的效果)。
的确,这是一种控制分隔网格的水平线的更复杂的方法,不太“编程”,更像是微观管理,但是,它确实提供了对将线引入网格的很好的控制。
其他的答案也是很好的选择!我只是想提供我的两分钱。
jvidinwx3#
这可以通过绝对定位的伪元素来实现。它将覆盖grid-gap。您必须将其设置为宽宽度,这只是一个小黑客,然后将容器上的溢出设置为隐藏。
lf5gs5x24#
box类在网格子元素中放置一个边框,你可以让一个网格子元素增长到填充任意数量的列;下面有一个例子,其中definig类span 3,第四个网格子级跨越3列。