【发布时间】:2023-03-10 15:12:01
【问题描述】:
当以表格/网格的方式显示多个项目时,CSS 是否可以在不知道“行”数的情况下覆盖元素顺序?
例如这是一个标准表,也是相同数据的更紧凑的替代方案。但是我必须为第二个(1、4、2、3)移动一些 HTML 元素,否则第 4 列会偏移一行。
.layout1 {
margin: 1em 0;
width: 400px;
display: grid;
grid-template-columns: auto auto auto max-content;
grid-row-gap: 0.2em;
}
.layout2 {
margin: 1em 0;
width: 200px;
display: grid;
grid-template-columns: auto auto max-content;
}
.layout2 .col1 {
margin-top: 0.2em;
grid-column: span 2;
}
.layout2 .col4 {
margin-top: 0.2em;
grid-row: span 2;
}
.layout2-5 .col2 {
grid-column: 1;
}
.layout2-5 .col3 {
grid-column: 2;
}
.layout2-5 .col4 {
grid-column: 3;
}
.col1, .col2, .col3, .col4 { padding: 0 1em; }
.col1 { background: #F99; }
.col2 { background: #9F9; }
.col3 { background: #99F; }
.col4 { background: #9FF; }
<div class="layout1">
<!--"row"-->
<div class="col1">1</div><div class="col2">2</div><div class="col3">3</div><div class="col4">4</div>
<!--"row"-->
<div class="col1">1</div><div class="col2">2</div><div class="col3">3</div><div class="col4">4</div>
<div class="col1">1</div><div class="col2">2</div><div class="col3">3</div><div class="col4">4</div>
</div>
<div class="layout2">
<!--"row"-->
<div class="col1">1</div><div class="col4">4</div><div class="col2">2</div><div class="col3">3</div>
<!--"row"-->
<div class="col1">1</div><div class="col4">4</div><div class="col2">2</div><div class="col3">3</div>
<div class="col1">1</div><div class="col4">4</div><div class="col2">2</div><div class="col3">3</div>
</div>
<div class="layout2 layout2-5">
<!--"row"-->
<div class="col1">1</div><div class="col2">2</div><div class="col3">3</div><div class="col4">4</div>
<!--"row"-->
<div class="col1">1</div><div class="col2">2</div><div class="col3">3</div><div class="col4">4</div>
<div class="col1">1</div><div class="col2">2</div><div class="col3">3</div><div class="col4">4</div>
</div>
【问题讨论】:
-
据我所知,只有在使用 Flexbox 时,才能在 CSS 中重新排序行
-
如果我可以使用
flex或普通table或其他任何可以做到这一点。但是,如果您指的是order属性,那么它也适用于网格,但是您将如何将其应用于此?
标签: html css css-tables css-grid