html - 4 列 TD 表在移动屏幕中使用 CSS 转换为 2 列(无 TH)
问题描述
我想制作一个响应式表格,该表格连续有 4 列(4x1),并且想在最大宽度中连续显示 2 列:600px [移动屏幕](2x2),我的代码正在运行但有 4x4 . 如何纠正css。输出应该是这样的。
桌面 -
---- ---- ---- ----
A B C D
---- ---- ---- ----
移动的
---- ----
A B
---- ----
---- ----
C D
---- ----
table {
width: 100%;
border-collapse: collapse;
background: rgb(196, 215, 70)
}
tr:nth-child(2n) {
background: lightblue;
}
th, :before {
background: tomato;
box-shadow: inset 0 0 0 2px;
}
th, td {
box-shadow: inset 0 0 0 2px;
text-align: center;
vertical-align: middle;
padding: 0.5em;
vertical-align: middle;
}
@supports (display: contents) {
/* trick works if data-time attributes stands in html and if display:contents is supported */
@media screen and (max-width: 768px) {
table {
display: flex;
flex-flow: column;
}
thead, tr, tbody {
display: contents;
}
tr th:first-child {
display: none;
}
th {
background: red;
}
td {
display: table;
table-layout: fixed;
border-collapse: collapse;
width: 100%;
}
td:before {
content: attr(data-time);
border-right: solid 1px;
display: table-cell;
vertical-align: middle;
white-space: pre;
/* only if you care */
padding: 0.25em;
}
tr :nth-child(2) {
order: 0;
}
tr :nth-child(3) {
order: 1;
}
tr :nth-child(4) {
order: 2;
}
tr :nth-child(5) {
order: 3;
}
tr :nth-child(6) {
order: 4;
}
tr :nth-child(7) {
order: 5;
}
}
}
<table>
<tbody>
<tr>
<td>
<p>A</p>
</td>
<td>
<p>B</p>
</td>
<td>
<p>C</p>
</td>
<td>
<p>D</p>
</td>
</tr>
</tbody>
</table>
解决方案
推荐阅读
- python - 通过在 mm:ss 前面添加 00 将 mm:ss 转换为 hh:mm:ss 使时间格式相同 - Pandas
- plsql - PL/SQL 包编译错误:PLS-00323
- android - 如何使可绘制背景突出显示如下图所示的选项卡
- vue.js - 在向导中将数据从子组件传递到父组件-VueJs
- azure - 将 Azure AD 中已使用域的子域用于 Azure AD B2C 租户
- c# - 如何使用 Trello API 使用电子邮件和密码登录 Trello 帐户?
- javascript - 图像未加载
- visual-studio - 在 jupyter notebook 中编辑单元格时是否有选择当前单词的快捷方式?
- javascript - 返回承诺的最惯用方式,还是返回承诺的函数?
- stm32f4 - 为什么在 PWM 模式下清除 TIM1->BDTR 中的 MOE 会停止为 STM32F401 触发 ADC1 IN STM32 Nulceo-64?