PS: 下文所说的窄距设备可以泛指移动端设备
在窄距设备中,表格很难搞,水平方向上没有足够的空间来舒适地摆放元素。因此可以在窄距设备上将表格变成两行,将一行的行头和单元格变成列。
下面来实现这个功能
首先一个普通的表格
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24
| < table> <thead> <tr> <th>Country</th> <th>Desktop</th> <th>Tablet</th> <th>Mobile</th> </tr> </thead> <tbody> <tr> <td data-th="Country">India</td> <td data-th="Desktop">32%</td> <td data-th="Table">1%</td> <td data-th="Mobile">67%</td> </tr> <tr> <td data-th="Country">GB</td> <td data-th="Desktop">69%</td> <td data-th="Table">13%</td> <td data-th="Mobile">18%</td> </tr> </tbody> </table>
|
它在桌面浏览器上是这样展示的

下面利用css3的媒体查询功能来实现表格的自适应。
这里我们设置的断点是600px
。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22
| @media (max-width: 600px) { table thead { display: none; } table td { display: block; position: relative; padding-left: 50%; padding-bottom: 15px; text-align: left; } table td:before { content: attr(data-th) " :"; display: inline-block; position: absolute; top: 0; left: 0; bottom: 0; width: 33%; max-height: 100%; } }
|
它在窄距设备是这样展示的

这样就比较完整的展示的表格的内容。
当然这只是表格自适应的其中一种办法,还有更多的办法哦O(∩_∩)O~