【发布时间】:2021-08-24 07:01:29
【问题描述】:
当有人在移动设备中打开页面(小于 480 像素)时,我想将表格列显示为行。
这是我的表结构。
table, th, td {
border: 1px solid black;
}
table {
border-collapse: collapse;
}
@media(max-width: 480px) {
.main td {
display: table-row;
}
}
<p>
In desktop View
</p>
<table class="main">
<tr>
<td>R1 Col 1</td>
<td>R1 Col 2</td>
</tr>
<tr>
<td>R2 Col 1</td>
<td>R2 Col 2</td>
</tr>
<tr>
<td>R3 Col 1</td>
<td>R3 Col 2</td>
</tr>
</table>
我尝试过使用 css 之类的。
@media(max-width: 480px) {
.main td {
display: table-row;
}
}
但它不起作用。在移动视图中,我想要这样的输出,第二列应显示在第一列下方。
注意:我无法将表格更改为 div。
【问题讨论】:
-
您可以使用引导程序来代替
table。 -
您不能通过 css 将 td 从一个 tr 移动到另一个,您可以使用 2 个表,其中 1 个用于移动视图,1 个用于桌面。并使用
display:block/none; -
@SureshPonnukalai:我只能选择使用表格并应用一些 css。
-
使用您当前的 html 几乎是不可能的(对于绝对位置的一些奇怪的东西,这可能是可能的,但在这种情况下我完全不建议这样做)。您需要的是从每行中取出第二个 td 并将其移到下方。仅使用 html 和 css 是不可能的。您需要更改 html 结构并使用 flexbox(或 cssgrid)。或者重新考虑需求。或者可能使用 javascript。
-
tr {display:contents}将允许每个单元格的样式设置为 tr 父级上的兄弟、flex 或 grid 将允许使用 order 交换它们的位置。 CSS 可以在这里为这样一个简单的表格提供帮助。
标签: html css css-selectors