网上似乎有很多关于此的内容,但这令人难以置信,所以我想尝试得出一个明确的答案。

我有一张桌子,说2列2行。

1 | 2

3 | 4

我希望它在视口需要时折叠成行。

1个

2

3

4

我的代码如下

<table border=0 cellpadding=0 cellspacing=0 width="100%" class="resptable">
    <tr>
        <td>Text 1</td>
    <td>Text 2</td>
    </tr>
    <tr>
        <td>Text 3</td>
    <td>Text 4</td>
    </tr>
</table>


堆叠版本的css如下。

.resptable td {display:block;width:100% !important;padding-right:20px;}


在FF和Chrome中似乎可以,但在Safari或IE中则不能。

奇怪的是(对我而言),附加到TH而不是TD的相同代码在Safari中工作(尽管在IE中仍然不行)。

在每个站点都必须响应的世界中,它乞belief认为仍然存在数千个跨浏览器/设备问题。

有人为这项简单的任务提供了明确的跨浏览器方法吗?

最佳答案

最简单的方法是给TD元素一个以像素为单位的宽度。我给它一个500px的宽度。这将适用于视口,就好像屏幕足够大以适合您使用的宽度一样,它都不会折叠。如果较小,则将崩溃为每行1个。以完全模式查看此代码以查看。



.resptable td {display:inline-block; width: 500px; !important;padding-right:20px;}

<table border=0 cellpadding=0 cellspacing=0 width="100%" class="resptable">
    <tr>
        <td>Text 1</td>
    <td>Text 2</td>
    </tr>
    <tr>
        <td>Text 3</td>
    <td>Text 4</td>
    </tr>
</table>





如果您不想使用表,可以通过多种方法来实现。在这种情况下,使用表格可能不是最佳选择。取而代之的是,我创建了一种简单的格式,其工作方式类似于表,但具有响应能力。 *以全模式查看并缩小屏幕以查看它们是否合拢。



.parent-wrapper {
    height:100%;
    width:100%;

}
.parent {
    flex-wrap: flex;
    margin:-10px 0 0 -10px;
}
.child {
    display: inline-block;
    margin:10px 0 0 10px;
    flex-grow: 1;
    height:100px;
    width: 500px;
}

 <div class="parent-wrapper">

        <div class="parent">
            <div class="child">Text1</div>
            <div class="child">Text2</div>
            </div>
        </div>

        <div class="parent">
            <div class="child">Text3</div>
            <div class="child">Text4</div>
            </div>
        </div>

    </div>        

09-25 15:25