2013-02-04 165 views
2

我有以下的html代码:HTML表行跨度奇怪的行为

<table border="1"> 
    <tbody> 
     <tr> 
      <td rowspan="4">1 Rowspan=4</td> 
      <td rowspan="3">2 Rowspan=3</td> 
     </tr> 
     <tr> 
      <td>3 something</td> 
     </tr> 
     <tr> 
      <td>4 something</td> 
     </tr> 
     <tr> 
      <td>5 something</td> 
     </tr> 
     <tr> 
      <td>6 something</td> 
      <td>7 something</td> 
     </tr> 
     <tr> 
      <td>8 something</td> 
      <td>9 something</td> 
     </tr> 
    </tbody> 
</table> 

它的行为是这样的:

enter image description here

这是不对的!应该只有2列!

我想在#1下面的#2和#4下面有单元格#3。

为什么不可能这样?

这里是一个小提琴:http://jsfiddle.net/FvY5b/

+2

如果一行中的每个单元格跨越多行,那么您的结构出了问题。 – Quentin

+0

在这种情况下,您的rowspan不起作用。删除它并使用CSS来确定单元格的高度。 –

回答

2

的标记违反了HTML表格模型。如果使用HTML5模式检查标记为http://validator.w3.org,它将报告一个错误:“一个表格行是3列宽,并且超过了第一行(2)建立的列计数。”

所以正如@Aditi的回答和Madara Uchiha的评论,将rowspan="4"更改为rowspan="2"并删除rowspan="3"并设置CSS中第一行的高度(因为明显的意图是使其高于本来的高度)。

1

尝试此的前两行...

<tr> 
     <td rowspan="2">1 Rowspan=4</td> 
     <td>2 Rowspan=3</td> 
</tr> 
<tr> 
      <td>4 something</td> 
     </tr> 
     <tr> 
      <td>3 something</td> 
     </tr>