css - XHTML strict 边框会影响背景颜色

标签 css xhtml-1.0-strict

假设我有以下简约的 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 strict DocType,它会按“预期”工作。我错过了什么?谢谢。

最佳答案

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

关于css - XHTML strict 边框会影响背景颜色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1363482/

相关文章:

xhtml - "Converting"XHTML 1.0 严格到 HTML5

css - 我如何在不给嵌套列表的第一个元素一个双元素符号的情况下在 XHTML strict 中生成一个嵌套列表?

css - xHTML/CSS : How to make inner div get 100% width minus another div width

jquery - 禁用单击 div 但不悬停?

html - 主体颜色出现在标题上方

html - 更改选择窗口 html 颜色的最简单方法

html - 水平 <ul> 菜单 : how to fix the width of list items

css - 在 IE 兼容模式下 form 脱离 div

Javascript:仅在未查看 Qualtrics 页面时单击 'Next'

w3c-validation - 微数据itemprop导致W3C验证程序错误