响应表:如果表太小,则将单元格移动到新行

时间:2015-03-17 17:52:43

标签: html css responsive-design media-queries

我处于需要使用table的情况,但我也希望它响应

对于某些点under max-width: 500px,我想将第三个<td>元素转换为第二行100% width,其他元素转换为50% width

我知道display: block上的<td>可以将它们放在彼此之下,我最终会做的事情。但我希望介于两者之间。

table {
    height: 400px;
    width: 100%;
}
table tr td:nth-child(1) {
    background-color: red;
}
table tr td:nth-child(2) {
    background-color: green;
}
table tr td:nth-child(3) {
    background-color: blue;
}
@media screen and (max-width: 500px) {
    table tr td:nth-child(3) {
        background-color: pink;
        clear: both;
        display: block;
        width: 100%;
    }
    table tr td:nth-child(1), table tr td:nth-child(2) {
        display: block;
        width: 50%;
    }
}
<table>
    <tr>
        <td>1</td>
        <td>2</td>
        <td>3</td>
    </tr>
</table>

(Fiddle version)

我已尝试过不同的display变体,例如inline-block。 这是可能吗?最好没有JS?

1 个答案:

答案 0 :(得分:5)

如果您处理单元格周围的空白以使两个50%宽度的元素适合,则内联块有效:

table {
    ...
    border-spacing: collapse;
}
td {
    padding: 0;
}

<强> Demo

请注意,我已从第三个单元格中删除了一些不必要的样式。