包裹两个相邻的td

时间:2013-05-09 11:52:55

标签: css html-table responsive-design

我有一个有两列的桌子,宽300px,在普通电脑屏幕上宽度为600px。

我想为小屏幕移动设备修改该表的显示。

有没有一种CSS方法可以让右列的单元格换行并进入左列的单元格,然后是下一个左侧单元格,然后是右下一个单元格,依此类推?

3 个答案:

答案 0 :(得分:6)

这是一个概念验证演示。

考虑下表:

<table>
    <tr>
        <td>First Row - Cell 1</td>
        <td>First Row - Cell 2</td>
    </tr>
    <tr>
        <td>Second Row - Cell 1</td>
        <td>Second Row - Cell 2</td>
    </tr>
</table>

如果浮动表格单元格,则可以使它们垂直堆叠,例如:

table {
    width: auto;
}
table td {
    background-color: lightgray;
    float: left;
    width: 150px;
    margin: 10px 0;
}

您需要在媒体查询中调整表格宽度和单元格宽度。

使用浮点数的一个优点是表格在不使用媒体查询的情况下响应,这在某些情况下可能很有用。

小提琴:http://jsfiddle.net/audetwebdesign/qSd7g/

答案 1 :(得分:3)

表就像任何其他HTML元素一样。如果您不喜欢它的显示方式,请更改其显示属性。

table, tbody, tr, th, td { display: block }
thead { display: none } /* optional */

重新格式化复杂表格的演示:http://codepen.io/cimmanon/pen/ukBqo

答案 2 :(得分:1)

您需要使用media queries根据屏幕大小或浏览器宽度更改CSS属性。

要以纵向模式定位iPhone 5,您可以执行以下操作:

@media only screen 
and (min-device-width : 320px) 
and (max-device-width : 568px) 
and (orientation : portrait) {
    td {
        width: 100%;
        display: block;
    }
}

要定位更一般的devies数组,您可以使用更通用的查询来捕获更多的屏幕尺寸:

@media only screen 
and (max-width : 800px)  {
    td {
        width: 100%;
        display: block;
    }
}

DEMO(调整浏览器窗口大小)

iPhone / iPad相关媒体查询有一个很好的资源HERE