2011-05-03 108 views
1

我有一個jQuery插件,用於創建,填充和格式化表格。我已經有了創建和填充的權利,但格式仍然沒有我。固定大小的列

桌子總是寬800px(爲了讓我的生活變得簡單,我設計了我的網站,我是一個大多數左腦的傢伙,音樂是我能理解和製作的唯一藝術),但是列和它們各自的特性(標題,寬度,對齊)的數量是可變的:

$ 
.grid('MostSoldBySales', 'Most sold products by total sales', 112 /* height in px */, [ 
    {css: {'text-align': 'left', width: 120/*px*/}, children: 'Description'}, 
    {css: {'text-align': 'right', width: 160  }, children: 'Total Sales'}, 
    {css: {'text-align': 'left', width: 360  }, children: 'Comments'} 
]) 
.grid('MostSoldByWeight', 'Most sold products by total weight', 112 /* height in px */, [ 
    {css: {'text-align': 'left', width: 120/*px*/}, children: 'Description'}, 
    {css: {'text-align': 'right', width: 160  }, children: 'Total Weight'}, 
    {css: {'text-align': 'left', width: 360  }, children: 'Comments'} 
]) 
; 

我的主要問題是有關列寬:我迫切需要的方式規定,使我的列完全一樣寬。我不希望瀏覽器出於任何原因調整列的大小。我認爲這是Visual Basic提供的功能。我如何使用CSS做到這一點?

+0

@mu太短:很遺憾,沒有。我想分享,但是這個代碼是爲別人編寫的,而且它不是免費軟件。 – pyon 2011-05-04 07:49:30

+0

@mu太短:這是一個Intranet應用程序。 – pyon 2011-05-04 23:45:41

回答

3

一個安全可靠的方式我所知道的是把每一個的DIV裏面的TD。您爲TD指定的寬度僅作爲建議(即使在現代瀏覽器中),如果窗口太窄,列將壓縮。所以這將始終嚴格200px寬:

<table> 
    <tr> 
    <td> 
     <div style="width:200">Some stuff</div> 
    </td> 
    </tr> 
</table> 
2

您可以嘗試使用'min-width': '120px'

2

我認爲你的問題是,你給瀏覽器衝突的尺寸。你說<table>元素被設置爲800px寬,但你的三列只能添加640px。你將需要在某處添加另一個160px。與其他列集,你必須確保列寬度總和爲800px。

您可以嘗試在您的<table>上使用table-layout: fixed。這應該強制這個問題,並停止你可能得到的表和它的單元格之間的任何反饋。 !

+0

即使列寬增加到800px,單個寬度也會變形。 – pyon 2011-05-04 00:17:08

+0

@Eduardo:你有任何邊界或類似的東西嗎?還有'table-layout:fixed'(請參閱我的更新以獲取鏈接)。 – 2011-05-04 00:49:00

+0

@mu太短:我的表沒有任何邊框,但它的單元格有左右填充。在設置列大小時,我將這些填充考慮在內,但即使如此,列的大小也不正確。 – pyon 2011-05-04 17:25:45

2

雖然不是真的實用,你也可以嘗試包裝在雙引號的寬度,增加了它的重要,像這樣

{css: {'text-align': 'left', width: "360px !important"  }, children: 'Comments'}