2011-06-19 62 views
0

我有一個如下所示的HTML表格;如何使用JavaScript和jQuery設置HTML表格單元格寬度

<table style="width: 100%"> 
<tr> 
<td style="width: 30px">cell</td> 
<td class="cell">cell</td> 
<td class="cell">cellcell</td> 
<td class="cell">cellcellcell</td> 
<td class="cell">cellcellcellcell</td> 
<td class="cell">cellcellcellcellcell</td> 
<td class="cell">cellcellcellcellcellcell</td> 
<td style="width: 30px">cell</td> 
</tr> 
</table> 

該表的目的是擴展到屏幕(或具有特定寬度的div)。對於所有具有class="cell"的單元,我希望等寬,並且當具有class="cell"的所有單元中的文字的字符長度相等時,這可以很好地工作。但是,即使class="cell"中的內容的字符長度不同,我也要修正單元格寬度。

你也可以看到,第一和最後一個單元有固定的寬度,以像素和其他單元格寬度將被百分比的基礎上計算的。我想對所有細胞相同的寬度(除第一個和最後用固定寬度以像素爲單位)。

我認爲這可以使用javascriptjQuery的幫助下完成,計算文檔就緒時的表格單元寬度,然後使用on window resize添加一些函數,從而計算單元寬度。單元格寬度將是(tablewidth in px - 60px)/6我是一個初學者,我不知道太多..我怎麼能做到這一點使用jQuery和(或)JavaScript。

這將是非常有益的,如果有人讓我一個小提琴..

在此先感謝... :)

blasteralfred

+0

1.如何使用css或html設置寬度? 2.我們如何使用javascript/jquery做到這一點? –

+0

你說你想讓每個單元格的寬度相同(拉伸),然後你說你想修正單元格寬度。也許你可以澄清你的要求。否則,看起來你應該簡單地使用HTML中的百分比來設置你的個人'​​'寬度。 – Sparky

回答

3

你可以只做到這一點與CSS,通過應用每個 td等於百分比:

td{ 
width: 16%; 
} 

示例: http://jsfiddle.net/niklasvh/wKmxD/

,並提供更新的問題,你可以通過先寬度存儲到一個數組,然後引用上window resize用JavaScript做到這一點,並使用長寬比差異來放置新的寬度:

var w = []; 
var tw = $('table').width(); 
$('table td').width(function(i,e){ 
    w[i]=e; 
}); 

$(window).resize(function(){ 
    $('table td').width(function(i){ 
    return ($('table').width()/tw)*w[i]; 
    }); 
}); 

http://jsfiddle.net/niklasvh/543D9/

+0

我正準備幾乎逐字回答相同的答案。 – kojiro

+0

六列16%,每個只加起來96%......我不認爲剩下的4%將會很好地跨瀏覽器處理......(這是一個矛盾,因爲一個對象是相等的到其部分的總和)。此外,我不認爲他是這樣要求的,否則他可以在HTML中設置他的'​​'寬度。另一方面,我不確定我甚至不明白他在問什麼。 – Sparky

+0

@Niklas ..你有一個很好的邏輯,但是如果我有一些具有特定長度像素的tds ..我已經重新編輯了我的問題以避免更多的混淆,你會知道我在說什麼。 。:) –

相關問題