我准备了一个示例 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 的错误印象。为了明确强调这一点,我不需要在这里更改任何内容。砖块的例子只是我正在观察的问题的一个有趣的演示。我真的很想了解在这样的排列中插入内容时导致元素改变位置的原因。