2013-06-18 91 views
1

Chrome似乎無法兌現我在表格中設置的.width()設置。 IE10呢。Chrome並不尊重使用javascript的表格寬度設置

頁面加載完成後,我得到表格的寬度:425px。 然後我刪除最寬的內容的行,這使得表重繪和表的寬度縮小:185px。

然後,我將表格寬度設置爲原始值425px。但是,如果我在設置後檢查表格的寬度,它會關閉(在我的實驗中爲2px):423px。

這是一個已知的錯誤嗎?

我使用錯誤的get/set嗎?

它似乎與表格邊框(1px邊框X2 = 2px)有關,但是我需要在設置寬度時進行計算以考慮邊框嗎?

我有複製問題的jsfiddle:

http://jsfiddle.net/slolife/zLyQ2/

var orgWidth = $('table').width(); 
alert('Original width = ' + orgWidth); 
$('table').width(orgWidth); 
alert('Width after setting width to ' + orgWidth + ' = ' + $('table').width()); 
$('#two').remove(); 
alert('Width after remove = ' + $('table').width()); 

回答

2

這是所有關於box model.

添加

table{ 
    box-sizing: border-box; 
} 

的聯繫是一個非常有趣的閱讀,但基本上你強迫計算包括與w3c規範不兼容的邊框和填充。

已更新jsFiddle