【发布时间】:2009-07-23 13:03:05
【问题描述】:
我对以下 HTML/CSS 代码有疑问:
CSS
* { padding: 0; margin: 0; border: none; outline: none; }
#container {
margin: 10px auto 10px auto;
width: 960px;
background-color: #dddddd;
border: solid 1px black;
}
#container2 {
margin-left: 200px;
margin-top: 400px;
background-color: yellow;
}
HTML
<body>
<div id="container">
<div id="container2">
<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor
incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud
exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.</p>
</div>
</div>
</body>
示例页面看起来与我预期的一样,即下部 div(黄色)从外部 div(灰色)的顶部边框向下推 400px。
但是,当您从#container 的样式定义中删除行:border: solid 1px black; 时,外部 div(灰色)从与内部 div(黄色)相同的顶部位置开始。
这发生在 Firefox 3.x 和 Chrome 中。
有人可以解释为什么会这样吗?在我看来,移除边框样式根本不应该影响这个布局。
【问题讨论】:
-
由于某种原因,您的 XHTML(天哪)1.0 Strict 在顶部有一个 HTML 4.01 过渡文档类型。你应该改正一下。
-
谢谢,已更正。当我从现实生活中的文档创建示例代码时,这是大量复制/粘贴的副作用
-
仍然无效。您不能随意在 HTML 中的标签内添加“/”字符 :)
-
希望现在一切正常 :-)。再次感谢戴夫。