与互质数字的Rowspan安排

时间:2011-07-13 19:09:26

标签: html html-table

我有数据(A,B1,B2,C1,C2和C3),我想把它放在这样的表格中:

+----+----+----+
|    | B1 | C1 |
|    +----+    |
| A  | B2 +----|
|    +----+ C2 |
|    | B3 |    |
+----+----+----+

使用rowspans,我想出了这个:

<table> 
<tr>
    <td rowspan=6>A</td>
    <td rowspan=2>B1</td>
    <td rowspan=3>C1</td>
</tr>
<tr><td rowspan=2>B2</td></tr>
<tr><td rowspan=3>C2</td></tr>
<tr><td rowspan=2>B3</td></tr>
</table> 

但它不起作用。我尝试了几种组合和变体,但它们都不起作用。

如果可能的话,我想要一个适用于任何互质数字的解决方案(这里的例子是2和3)。

如果你想自己快速破解它,我用这个代码制作了一个jsfiddle(http://jsfiddle.net/NPETb/)。

3 个答案:

答案 0 :(得分:2)

为什么不使用嵌套表? E.g。

<table> 
<tr>    
    <td> A
    </td>   
    <td> <table> <tr><td>B1</td></tr> 
                 <tr><td>B2</td></tr> 
                 <tr><td>B3</td></tr> 
        </table>
    </td>
    <td> <table> <tr><td>C1</td></tr> 
                 <tr><td>C2</td></tr> 
        </table>
    </td>                
</tr>     
</table> 

答案 1 :(得分:1)

您的rowpans最多可添加6个,但表中实际上并没有6行。

您还需要添加最终为空的行:

<table> 
<tr>
    <td rowspan=6>A</td>
    <td rowspan=2>B1</td>
    <td rowspan=3>C1</td>
</tr>
<tr><!-- no new cells here --></tr>
<tr><td rowspan=2>B2</td></tr>
<tr><td rowspan=3>C2</td></tr>
<tr><td rowspan=2>B3</td></tr>
<tr><!-- no new cells here --></tr>
</table> 

答案 2 :(得分:1)

尝试这种视觉解释。举几个例子:(2,8),(4,6)和(3,5)等。获取一个标尺并延伸所有水平线段,直到它们与表边界一起向上凸起。你会看到,对于互质数字,除了顶部和底部之外,水平线不会重叠。具有共同因素的数字将导致重叠,并且在绘制几张图片之后应该清楚原因。

所以你有最糟糕的情况,如果你想做(5,7),你需要35行!任何互质对都会发生同样的情况。在这种情况下,不同的列在逻辑上类似于不同的表,因为它们的水平线根本不是网格,除了顶部和底部。

所以,选择你的毒药:每个'列'的嵌套表或者笨拙地粘在一起的繁琐数量的行。

顺便说一句,给定(m,n)答案并不复杂......