こんばんは。レスがないようなので。
IE6のスタイルシート解釈には、有名なバグがたくさんあって、特にフロート(float)関連で
ありえない挙動が目につきます。これは、その一例ですね。なぜそうなるのか論理的根拠は
なくて、IE6の不可解なバグとしかいいようがありません(IE7b3では起きません)。
有名どころ:http://www.positioniseverything.net/explorer/peekaboo.html
TABLEに指定してある float:left をなくせば、この問題は起きないことから、float
が悪さをしているだろうことは分かります(IE6以下において)。
レイアウトが少し変わっても良いのであれば、
なにぬねの<br><br clear="all">
とするか、あるいは、ボタンのDIVにて、
<div style="clear:both; background-color:red;border:.....
みたいにするかでしょうね。
ここは、JavaScriptの掲示板なので、スクリプトからアプローチするなら、
function btnpush(obj){
var oH = obj.parentNode.offsetHeight; // とりあえず取得
obj.style.borderStyle = "inset";
obj.parentNode.style.height = oH + "px"; // 縮んだサイズを元に戻す
}
とすればOKかもしれません。