2013-02-04 166 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>