2011-05-17 58 views
1

我正在尝试使用表创建括号,并且我已经完成了所有单元格元素的rowspan高度的所有计算,但是我仍然遇到了如何使用先前行中定义的rowspans将单元放入表中的问题。看到这个例子:玩rowspans;表格单元如何放置?

<table border="1"> 
<tr> 
<td style="min-width: 100px">Begin</td> 
<td style="min-width: 10px"></td> 
<td style="min-width: 10px"></td> 
<td style="min-width: 100px">End</td> 
</tr> 
<tr> 
<td colspan="4" style="height: 20px"></td> 
</tr> 
<tr> 
<td rowspan="2">Seed 1</td> 
<td rowspan="2"></td> 
<td rowspan="5"></td> 
<td rowspan="3"></td> 
</tr> 
<tr> 
<td></td> 
</tr> 
</table> 

在此,每列中的当前高度(不包括以上,因为它们已经偶数行)处于2,2,5,和3。然而下一行中添加另一元件时只是为了查看它放在表格中的位置,它将呈现在现有行的右侧,创建不应存在的第五列。为什么它不放在第一列中,使列高度为3,2,5和3?我的印象是表格会将元素放在下一个最短的列中。我完全没有桌子吗?我应该怎么做才能让这个元素实际出现在它应该是的第一列?是否需要完成整个表格才能正确呈现(通常,表格会留下尚未放置单元格的空白空间)?

我在Google上搜索了一个小时,但找不到与浏览器处理HTML时实际应该放置单元格有关的任何内容。关于桌子的工作方式和yada yada ya有太多其他垃圾。

回答

1

实际上,发生的事情是最后一个单元试图在第一行下面的下一行进入。但是,下一行已经满了,因为每个单元至少有两行高。第一行包含[Seed 1] [] [] [],第二行包含前两个单元格的底部,以及上一行中第三个和第四个单元格的中间。

如果你把一个空行,然后向下移动到下面的第三排,可以看到细胞开始出现在表中,你预期:

<tr></tr> 
<tr> 
    <td>Row 3, Cell 1</td> 
    <td>Row 3, Cell 2</td> 
    <!-- no room left, now move to row 4 --> 
</tr> 

细胞不会自动流向从一个行下一个。您必须显式关闭该行并在每行满时开始下一行。在你的情况下,你一次完全填满了两行,所以你必须跳过一行才能到达下一行有可用单元格的行。

下面是一个示例,显示按预期工作的单元格:http://jsfiddle.net/UmLqw/1/

+0

WOW是如此简单。因此,只需添加一个''修复了这个问题?哈哈非常感谢你,我甚至都没有想过这件事。 – animuson 2011-05-17 03:37:50

+0

@animuson:嗨,总是很乐意帮忙! – mellamokb 2011-05-17 03:39:01

相关问题