最近,我遇到了一个复杂的表实现,例如:

tr1: | td1 | td2 | td3 |
tr2: |  th  |   td   |
tr3: |  th  |   td   |
...

如此示例所示,当屏幕 radio /浏览器宽度更改时,我希望td1和td3的宽度固定,td和td2的宽度自动扩展。我想知道是否有一种使用CSS的方法?

为了清楚起见,我已经使用colspan和width来实现我的目的,但是如何通过使用colspan和width来使td1小于th呢? colspan不起作用,宽度值也不起作用

最佳答案

正确设置colspan是一个简单的问题。

表格标题行:每个单元格的colspan为2(3个单元格* 2 colspan = 6 colspan-cells)。
表主体行:每个单元格的colspan为3(2个单元格* 3 colspan = 6 colspan-cells)。

更新

似乎存在不一致的情况,这涉及同时设置了colspan和width的列。浏览器似乎忽略了宽度值,甚至忽略了最大宽度(最小宽度有效)。

例子:

<table border="1" style="width: 50%;">
    <tr>
        <td style="width: 100px;">td1</td>
        <td colspan="2">td2</td>
        <td style="width: 100px;">td3</td>
    </tr>
    <tr>
        <th colspan="2" style="min-width: 120px; max-width: 120px; width: 120px;">th1</th>
        <td colspan="2">td2</td>
    </tr>
    <tr>
        <th colspan="2" style="min-width: 120px; max-width: 120px; width: 120px;">th1</th>
        <td colspan="2">td2</td>
    </tr>
</table>

这将大致产生所需的输出,但是第th列th1扩展为与后续td(td2)的大小相同。除非表格小于240px,否则两者始终占据表格的50%,然后th1保持在120px。

这对我来说似乎不一致,并且我没有解决方法,最好是如果您检查是否可以以不同的方式显示表(即包括标题在内的所有行中的列数相同(总之,恕我直言,恕我直言))。

关于css - 如何使用CSS构建复杂的表格?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/2627370/

10-11 14:03