2015-05-25 76 views
3

我正在寫一個小程序與表。我發現如果tr只包含帶有rowspan和colspan屬性的td,那麼當我添加另一個tr時,這個tr就不會在換行符中。 下面的代碼:tr包含td與rowspan只有沒有強制新行與下一個tr

<table> 
<tr> 
    <td colspan='6' rowspan='2'>hello</td> 
    <td colspan='6' rowspan='2'>hello</td> 
</tr> 
<tr> 
    <td>hello</td> 
</tr> 
<tr> 
    <td>hello</td> 
</tr></table> 

參考,請看到的jsfiddle鏈接。 http://jsfiddle.net/fvxjq1qL/ 這看起來很尷尬,我不知道如何解決這個問題。 非常感謝您的幫助。

http://jsfiddle.net/uhq7o2sw/1/這是我想要的輸出(沒有第二個空標籤)。我寫的這個小程序是用戶自己在html頁面上繪製一個表格的(我需要得到html格式的表格來生成pdf報告,所以用戶自己繪製一張表格會很方便,我不必爲他們寫html來獲取我需要的數據)。當我測試這個小程序時,我發現了這個錯誤。如果用戶只想設置6個colspans和2個rowpan的tr(假設他/她想要td更高),那麼下一個tr將在同一行。所以我試圖找到一個解決方案來解決它,但沒有運氣。

+1

你爲什麼要這麼做?它沒有任何意義。張貼圖像以顯示想要的輸出。 – Stickers

+0

http://jsfiddle.net/fvxjq1qL/1/這是你想要的嗎? – ASR

+0

http://jsfiddle.net/uhq7o2sw/這是我想要的輸出(沒有第二個空的標籤。我寫的這個小程序是供用戶在html頁面上自己繪製一個表格的(因此我可以)當我測試這個小程序時,我發現了這個bug,如果用戶只想設置一個帶有6個colspans和2個rowspan的tr(假設他/她想讓td更高) ),那麼下一個tr會在同一行,所以我試圖找到一個解決方案來修復它,但沒有運氣 –

回答

0

問題是rowspan被設置爲2。因此,細胞也佔據了它下面的細胞空間。第二行然後在右側開始兩個位置(通過行跨越的單元格)。該單元格隨後顯示在表格的頂部,因爲它上面沒有任何單元格。這是因爲沒有細胞只佔據第一排。它可以通過這個例子可以更清楚地表明:

table { 
 
    border-spacing: 0; 
 
    border-collapse: collapse; 
 
} 
 
td { 
 
    border: 1px solid black; 
 
}
<table> 
 
    <tr> 
 
     <td colspan='6' rowspan='2'>hello</td> 
 
     <td></td> 
 
    </tr> 
 
    <tr> 
 
     <td>hello</td> 
 
    </tr> 
 
    <tr> 
 
     <td>hello</td> 
 
    </tr> 
 
</table>

+0

所以,你的意思是當我設置td rowspan屬性,它不佔用空間?那麼我該如何解決這個問題呢? –

+0

@EmmaWu像小提琴一樣,它也佔據了它下面的空間。至於如何解決它,我不知道你在做什麼。您提交的代碼不會生成有效的表格。 – Anonymous

+0

就像我後來在我的問題中添加的那樣,我正在設計一個由用戶設置的表格。比方說,如果用戶想要生成一個更高的表格單元並跨越它。所以他/她就像我說的那樣生成表格。但問題是,下一個tr將與前一個tr相同。這不是用戶想要的。所以我正在嘗試一種方法來解決這個問題,但沒有運氣。我可以嘗試更多與細胞顯示相關的屬性。 –