【发布时间】:2010-04-30 22:47:00
【问题描述】:
有人可以向我解释一下这个 IE7 错误吗?它发生在标准和 Quirks 模式渲染中,它不会发生在 Firefox、Chrome 或 IE8 中(尽管通过 IE8 开发人员工具切换渲染引擎会引发它)。这是重现该行为的 HTML:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
"http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
<title>Test</title>
<style type="text/css">
/* h1 { margin: 0px; } */
ul { padding: 0; margin: 0; list-style-type: none; }
ul li { float: left; width: 140px; padding: 3px; }
div { clear: left; padding: 3px; }
div, li { background-color: OrangeRed; }
/* ul { border: 1px solid blue; } */
</style>
</head>
<body>
<h1>Heading 1</h1>
<ul>
<li>bla 1</li><li>bla 2</li><li>bla 3</li>
</ul>
<div>yada</div>
</body>
</html>
- 这会在
<div>上方呈现一个浮动的<ul>(应该是一个选项卡式用户界面)。 -
<div>和<ul>之间存在无法解释的差距。 - 现在执行以下操作之一:
- 取消注释
<h1>的 CSS 规则。差距消失了,列表呈现为紧贴<div>,但也非常接近<h1>。 - 或者,取消注释
<ul>的 CSS 规则。现在,<ul>上方呈现了一个狭窄的蓝色边框,但间隙消失了。
- 取消注释
我的问题:
-
<h1>边距(我想任何具有定义边距的块级元素都可以)如何影响列表下方的空间? - 我是否可以在不必将页眉边距设置为 0 或弄乱
<ul>边框的情况下防止这种情况发生(顺便说一句,设置border-width: 0;不起作用)?
我想它连接到 <ul> 本身没有高度,因为它只有漂浮的孩子。也许比我更了解 IE7 特性的人可以解释渲染引擎在这里做什么。谢谢!
【问题讨论】:
标签: html css internet-explorer-7 css-float