レイアウトで現在直面している問題を示すために、サンプル jsfiddle を用意しました。コンテンツを特定の要素 (ブリック) に動的に挿入すると、要素が親と一緒に沈んでしまい、理解できない方法でHTML/CSSの。コンテンツを削除すると、Chrome を使用していない限り、元のレイアウトが復元されます。新しいコンテンツが挿入されると、その位置が保持され、再び倒れます。
概念実証: http://jsfiddle.net/GADk9/
この例のチェックボックスは、ブリック内のテキストを切り替えるだけで、それ以上のものはありません。上記の余白(ですか?)はどこから来ているのだろうか。
完全な HTML5 ドキュメントは次のとおりです。
<!DOCTYPE html>
<html lang='en'>
<head>
<meta charset='UTF-8'>
<title>HTML5 Falling Brick - What is this?</title>
<style>
#brick {
background-color: lightgray;
border: solid black medium;
border-radius: 1em;
color: red;
font-size: 2em;
height: 100%;
text-align: center;
}
#contrail { background-color: lightblue; width: 20em; }
#pit { display: table; }
#pit>* { display: table-cell; }
#pit>*>* { height: 4em; }
</style>
</head>
<body>
<div>
<label>Click me twice
<input onchange="document.getElementById('brick').innerHTML = this.checked ? 'FALL!!!' : ''" type='checkbox'></input>
</label>
</div>
<div id='pit'>
<div>
<div>
</div>
</div>
<div id='contrail'>
<div>
<div id='brick'></div>
</div>
</div>
</div>
</body>
</html>
アップデート
私の質問をもう一度読んだ後、私が実際に達成しようとしているのはHTMLの修正であるという誤った印象を示唆している可能性があることに気付きました。この点を明確に強調するために、ここでは何も変更する必要はありません。レンガの例は、私が観察している問題の面白いデモです。このような配置でコンテンツが挿入されたときに、要素の位置が変化する原因を理解することに非常に興味があります。