我有一个HTML表格,在移动浏览器中我需要隐藏它的一些列。
如果可能,我想使用@media
查询隐藏其中的2个或3个cols。
以下代码对我不起作用:
<table>
<tr>
<td></td>
<td class='collapsable'></td>
<td class='collapsable'></td>
<td></td>
</tr>
</table>
//hide cols here
td.collapsable {display:block; }
@media only screen and (min-width: 450px) {
//show cols here
td.collapsable {display:none; }
}
答案 0 :(得分:12)
像this?之类的东西(尝试调整结果窗口/窗格的大小)
HTML:
<tr>
<td class="one">corpse</td>
<td>corpse</td>
<td>corpse</td>
</tr>
CSS:
table{
width: 50%;
}
td, th{
border: 1px solid orange;
}
@media only screen and (max-width: 900px) {
.one{
display: none;
}
}
答案 1 :(得分:3)
使用nth-child隐藏列,保持HTML和表格标记的清晰。应该适用于支持媒体查询的每个现代浏览器。
这是一个示例小提琴,展示了它的实际效果。调整结果窗格的大小以使其正常工作。
https://jsfiddle.net/tycahill/xm0nwr7x
clean HTML:
<table>
<tr>
<td>Column 1a</td>
<td>Column 2a</td>
<td>Column 3a</td>
</tr>
<tr>
<td>Column 1b</td>
<td>Column 2b</td>
<td>Column 3b</td>
</tr>
</table>
用于隐藏第二列的CSS:
@media only screen and (max-width: 800px) {
td:nth-child(2) {
display:none;
}
}
答案 2 :(得分:1)
计划B:在每个单元格中放置一个DIV。按列对DIV进行分类。隐藏DIV。您可能需要调整表格的cellpadding / cellspacing并将其放在.cell
DIV上以保持之前的外观。
<table>
<tr>
<td><div class='cell'></div></td>
<td><div class='cell collapsable'></div></td>
<td><div class='cell collapsable'></div></td>
<td><div class='cell'></div></td>
</tr>
</table>
答案 3 :(得分:0)
我认为您的示例已切换display:block
和display:none
。另外,我建议使用display: table-cell;
而不是display: block;
,因为table-cell是<td>
元素的默认显示。这个CSS对我有用,也是移动优先的方法:
td.collapsable {display:none; }
@media only screen and (min-width: 450px) {
td.collapsable {display:table-cell; }
}