1

假设我有以下简约的 HTML 代码:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
<body style="background-color:silver; padding:0px; margin:0px;">
  <div style="background-color:Lime;">
    <h1>Title</h1>
  </div>
</body>
</html>

页面顶部有一个空隙,似乎只有 H1 的背景是用石灰着色的,或者好像 H1 正在按下父 div 标签。但是,如果我添加“border:solid 1px red;” 对于 div 的风格,整个 div 的背景是石灰,而不仅仅是 H1。我用 IE8、FF3.5 和 Chrome 对其进行了测试。他们都有相同的行为。如果我删除 XHTML 严格的 DocType,它会像“预期的”一样工作。我错过了什么?谢谢。

4

1 回答 1

1

我“缺少”的是折叠边距的概念。通过为 div 指定边框,我有效地取消了边距,这给了我预期的结果。另一种取消折叠的方法是给 div 至少 1px 的填充。不幸的是,在我的情况下,这些都不可接受,即我不想要 div 上的边框或填充,所以我必须找到不同的解决方案,但至少它解释了行为。

于 2009-09-01T19:36:01.413 回答