css - 每一行都包裹在自己的容器 div 中时,是否可以使用 CSS 网格?
问题描述
我目前有一个带有主容器(即display: table
)的简单表。在那个容器中,我有一些行(即display: table-row
),然后有一些 div(即display: table-cell
)。
.table {
display: table;
margin-bottom: 50px;
}
.table .table-row {
display: table-row;
}
.table .table-row div {
display: table-cell;
padding: 10px;
border: 1px red solid;
}
<div class="table">
<div class="table-row">
<div>Name</div>
<div>Phone</div>
<div>E-mail</div>
<div>City</div>
<div>Last meal</div>
<div>Number of meals</div>
</div>
<div class="table-row">
<div>John Doe</div>
<div>12 34 56 78 910</div>
<div>mail @mail.com</div>
<div>Moscow</div>
<div>1. June 2020</div>
<div>13</div>
</div>
<div class="table-row">
<div>Roger John Doe</div>
<div>12 34 56 78 910</div>
<div>myothermail @myothermail.com</div>
<div>New York</div>
<div>1. September 2020</div>
<div>102</div>
</div>
<div class="table-row">
<div>Roger Rabbit John Doe</div>
<div>12 34 56 78 910</div>
<div>mymail @mymail.com</div>
<div>London</div>
<div>1. May 2020</div>
<div>55</div>
</div>
</div>
是否可以使用 CSS 网格来实现相同的布局,而不删除div
包含每行内容的哪个?
我尝试在每一行上定义一个网格。在这种情况下,如果您缩小窗口,单元格开始折叠,并且不再与下面的单元格对齐。
.row-header,
.row {
display: grid;
grid-auto-columns: 1fr;
grid-auto-flow: column;
font-size: 13px;
justify-content: start;
}
.row-header div,
.row div {
padding: 10px;
border: 1px red solid;
}
<div class="row-header">
<div>Name</div>
<div>Phone</div>
<div>E-mail</div>
<div>City</div>
<div>Last meal</div>
<div>Number of meals</div>
</div>
<div class="row">
<div>John Doe</div>
<div>12 34 56 78 910</div>
<div>mail @mail.com</div>
<div>Moscow</div>
<div>1. June 2020</div>
<div>13</div>
</div>
<div class="row">
<div>Roger John Doe</div>
<div>12 34 56 78 910</div>
<div>myothermail @myothermail.com</div>
<div>New York</div>
<div>1. September 2020</div>
<div>102</div>
</div>
<div class="row">
<div>Roger Rabbit John Doe</div>
<div>12 34 56 78 910</div>
<div>mymail @mymail.com</div>
<div>London</div>
<div>1. May 2020</div>
<div>55</div>
</div>
解决方案
.table {
display: grid;
grid-template-columns: repeat(6, 1fr);
}
.table div {
padding: 10px;
border: 1px red solid;
}
.gridspan2{
grid-column: span 2;
}
code{
background-color: #bbb;
padding: 3px;
}
<div class="table">
<div>Name</div>
<div>Phone</div>
<div>E-mail</div>
<div>City</div>
<div>Last meal</div>
<div>Number of meals</div>
<div>John Doe</div>
<div>12 34 56 78 910</div>
<div>mail @mail.com</div>
<div>Moscow</div>
<div>1. June 2020</div>
<div>13</div>
<div>Roger John Doe</div>
<div>12 34 56 78 910</div>
<div>myothermail @myothermail.com</div>
<div>New York</div>
<div>1. September 2020</div>
<div>102</div>
<div>Roger Rabbit John Doe</div>
<div>12 34 56 78 910</div>
<div class="gridspan2">mymail @mymail.com (This cell has <code>grid-column: span 2</code> on it</div>
<div>1. May 2020</div>
<div>55</div>
</div>
像这样,是的
但是你不能在 CSS 网格中有行。但是,您可以grid-column: span 2
在一个单元格上定义以组合 2 个常规单元格。
推荐阅读
- java - 如何使用 Spring Boot SpringJUnit4ClassRunner 模拟方法,其中使用 mongo 模板,其中方法包含静态调用
- postgresql - 如何修复错误:line_locate_point: 2st arg 不是一个点?
- r - 修复ggplot中geom_tile元素的高度和宽度
- javascript - 为什么外部函数无法在 React 中导航其他 javascript 文件?
- github - multidots/zf3-rest-api 不再存在
- installation - VS2019如何制作程序安装包?
- powershell - Powershell - 计算列表中单词在 csv 列中的次数 - 零值很重要
- git - How to edit remote response text on different git actions?
- mysql - MySQL 在使用 Laravel 的 Schema::getColumnListing('table_name'); 时返回按字母顺序排序的列名;
- powershell - 提供 -Command "& {...}" 到 -Command "{...} 的区别 - 他们似乎做同样的事情