我试图用 CSS Grid 布局替换在 Bootstrap 中设置的数据网格和交互组件。我已经成功地复制了网格,但是在让类似表格分隔线起作用方面遇到了困难。根据我对 CSS Grid 的理解,由于我知道要提前显示的列数,但不知道行数(服务器动态生成数据),因此需要使用grid-template-columns: repeat(3, auto);
,并且每个单元格必须是包装 div 的直接子元素。
我尝试使用 nth-child 来获得想要的效果,但无法弄清楚哪个选择器可以让我针对动态范围的元素进行定位。
当事先不知道行数时,是否有更好的方法使用 CSS Grid 布置网格布局?
这里是一个fiddle示例,其中包括下面的所有代码。在我的实际项目中,行是动态生成的,目前有 5 列-但这可能会在将来改变。
.grid-table {
display: grid;
display: -ms-grid;
grid-template-columns: repeat(3, auto);
-ms-grid-template-columns: repeat(3, auto);
}
.grid-table :nth-child(-n+3) {
background-color: red;
}
<div class="grid-table">
<span>Room Name</span>
<span>Start Date</span>
<span>End Date</span>
<span>Room 100</span>
<span>Tuesday</span>
<span>Wednesday</span>
<span>Room 200</span>
<span>Tuesday</span>
<span>Friday</span>
<span>Room 200</span>
<span>Tuesday</span>
<span>Friday</span>
<span>Room 200</span>
<span>Tuesday</span>
<span>Friday</span>
</div>