Html 使用rowspan和colspan的复杂表

Html 使用rowspan和colspan的复杂表,html,css,html-table,Html,Css,Html Table,我必须制作一个非常复杂的表格,类似下图中的表格。 我试过这个标记,但效果不好。 我不明白为什么第6单元和第5单元保持在同一行,即使它们在不同的tr标签中。 我也不明白为什么单元格1、2、3的跨距大小不正确。 有人能告诉我如何解决这个问题吗?您的表应该是每8行5列的表(在合并许多单元格之前) 您的所有行应总共有5列(或示例为colspan=“2”后跟colspan=“3”)。这是前两个的情况,但从第三个到最后一个是错误的 不要拉小提琴,因为我不会为你拉的;)如果仍然存在问题,请在桌子为5C x

我必须制作一个非常复杂的表格,类似下图中的表格。

我试过这个标记,但效果不好。

我不明白为什么第6单元和第5单元保持在同一行,即使它们在不同的tr标签中。 我也不明白为什么单元格1、2、3的跨距大小不正确。
有人能告诉我如何解决这个问题吗?

您的表应该是每8行5列的表(在合并许多单元格之前)

您的所有行应总共有5列(或示例为
colspan=“2”
后跟
colspan=“3”
)。这是前两个的情况,但从第三个到最后一个是错误的

不要拉小提琴,因为我不会为你拉的;)如果仍然存在问题,请在桌子为5C x 8R的位置提供小提琴

编辑:确定在此处解决它:

  • 主要问题在于第2行和第3行:虽然它们在显示时有两倍的高度,并给人留下占用4行的印象,但它们不应该(必须)每个只占用1行。
    因此,左侧的3个单元格“1、4和8”分别垂直跨越。1、2和5个单元格(但第4个单元格的高度是一个单元格高度的两倍,该单元格也可以跨越2行)。
    修改:单元格“4”跨越2行(不是4行);“5”和“6”无垂直跨度和。跨度超过2柱和3柱;单元格“7”跨越3行(不是4行)
  • 单元格“8”跨越5行,而不是4行
  • 我想,在标记为“9”-“17”的单元格中,还有一个值减去1,但我再也找不到了。也许不是
您不是在具有固定大小网格的纸上或在棋盘上绘图。HTML表格有点像拓扑结构,大小无关紧要,一个环、一个杯子、一个甜甜圈和土星环都有相同的特征:“它只是一个圆环”(如果土星环不是由一百万个由块组成的环组成的……我的类比就不那么好了)

当HTML表格算法从HTML代码中构建单元格、行和列时(它甚至可以在缺少几个单元格的情况下这样做!),它不知道它们在图形浏览器或打印机上的大小。而一个屏幕阅读器对此毫不在意。重要的是所需的最小细胞数。CSS然后使用结果设置样式并显示它

您显示的预览JPG是一个“5列”宽的模板。我建议你先从5个相同的td开始。然后开始从上到下制作其他行。根据单行高度,我想说这个模板实际上有10行高。我错了吗?为什么第三个需要更多的专栏?我认为第二行指定的单元格中有(2+1)加2。我如何设置行数和列数?@Michael 2行的高度是双倍的,是的。但是你只需要8个
tr
就可以完成这个任务:是的,你是对的。我没有考虑到这一点。。。事实上,问题是:如果它可以有8行,那么它就不应该这样做:它必须这样做。我对第5-8行进行了注释,并从这里尝试。。。。请看我的编辑与工作小提琴现在。
    <body>
        <table border="10" cellpadding="0" cellspacing="0">
        <tr>
            <td colspan="1" rowspan="1">1</td>
            <td colspan="2" rowspan="1">2</td>
            <td colspan="2" rowspan="1">3</td>
        </tr>
        <tr>
            <td colspan="2" rowspan="4">4</td>
            <td colspan="3" rowspan="2">5</td>
        </tr>
        <tr>
            <td colspan="2" rowspan="2">6</td>
            <td colspan="1" rowspan="4">7</td>
        </tr>
        <tr>
            <td rowspan="4" colspan="1">8</td>
            <td rowspan="1" colspan="1">9</td>
            <td rowspan="1" colspan="1">10</td>            
            <td rowspan="2" colspan="1">11</td>            
        </tr>
        <tr>
            <td rowspan="1" colspan="2">12</td>
        </tr>
        <tr>
            <td rowspan="3" colspan="1">13</td>
            <td rowspan="1" colspan="3">14</td>
        </tr>
        <tr>
            <td rowspan="1" colspan="2">15</td>
            <td rowspan="1" colspan="1">16</td>
        </tr>
        <tr>
            <td rowspan="1" colspan="2">17</td>
        </tr> 
        </table>
    </body>
 td {
     width:50px;
     height:50px;
     padding:0px;
 }