1

Chrome は、テーブルに設定した .width() 設定を尊重していないようです。IE10はそうです。

ページの読み込みが完了した後、テーブルの幅を取得します: 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());
4

1 に答える 1

2

それはすべてボックスモデルについてです。

追加

table{
   box-sizing: border-box;
}

リンクは非常に興味深い読み物ですが、基本的には w3c 仕様と互換性のないボーダーとパディングを含む計算を強制します。

更新されたjsFiddle

于 2013-06-18T22:09:22.490 に答える