为什么IE9不将Orange
div放在Blue
旁边?div 在其他更文明的浏览器中呈现得很好,比如 Chrome 或 Firefox。宽度值完美匹配,包括边距,但需要额外的 4 个像素才能从例如 Gray
div 以使Orange
出现在 IE9 中的Blue
旁边(当然,这会在Orange
的右侧留下 4 个像素的间隙)。
<div style="margin-top: 100px; background-color: GreenYellow; width: 740px; height: 100px; padding: 0px; overflow: visible;">
<div style="background-color: CadetBlue; width: 210px; height: 100px; margin: 0px; padding: 0px; float: left; overflow: visible;">
</div>
<div style="background-color: Black; width: 100px; height: 100px; margin: 0px 0px 0px 4px; padding: 0px; float: left; overflow: visible;">
</div>
<div style="background-color: FireBrick; width: 318px; height: 100px; margin: 0px 0px 0px 4px; padding: 0px; float: left; overflow: visible;">
<div style="background-color: LightSalmon; width: 318px; height: 48px; margin: 0px; padding: 0px; overflow: visible;">
<!-- Gray -->
<div style="width: 214px; height: 48px; margin: 0px 0px 0px 0px; padding: 0px; float: left; background-color: #333333; overflow: visible;">
</div>
<!-- Blue -->
<div style="width: 48px; height: 48px; margin: 0px 0px 0px 4px; padding: 0px; float: left; background-color: #00A8EC; overflow: visible;">
</div>
<!-- Orange -->
<div style="width: 48px; height: 48px; margin: 0px 0px 0px 4px; padding: 0px; float: left; background-color: Orange; overflow: visible;">
</div>
</div>
<div style="background-color: Gainsboro; width: 318px; height: 48px; margin: 4px 0px 0px 0px; padding: 0px; overflow: visible;">
</div>
</div>
<div style="background-color: Purple; width: 100px; height: 100px; margin: 0px 0px 0px 4px; padding: 0px; float: left; overflow: visible;">
</div>
</div>
那么我该如何解决这个问题呢?它要了我的命...
小提琴:http://jsfiddle.net/LE6cy/
更新
好的,我不知道这会影响它,但是在这些div之前,我在页面上还有一件事。这是一张普通的桌子。似乎一旦表格在那里,就会出现错误。所以这是整个HTML页面(真实):
<table id="signature" cellspacing="4" cellpadding="0" style="width: 750px; height: 100px; border: 0px;">
<tr>
<td rowspan="2" style="height: 100px; width: 210px; background-color: #336666;">
</td>
</tr>
</table>
<div style="margin-top: 100px; background-color: GreenYellow; width: 740px; height: 100px; padding: 0px; overflow: visible;">
<div style="background-color: CadetBlue; width: 210px; height: 100px; margin: 0px; padding: 0px; float: left; overflow: visible;">
</div>
<div style="background-color: Black; width: 100px; height: 100px; margin: 0px 0px 0px 4px; padding: 0px; float: left; overflow: visible;">
</div>
<div style="background-color: FireBrick; width: 318px; height: 100px; margin: 0px 0px 0px 4px; padding: 0px; float: left; overflow: visible;">
<div style="background-color: LightSalmon; width: 318px; height: 48px; margin: 0px; padding: 0px; overflow: visible;">
<!-- Gray -->
<div style="width: 214px; height: 48px; margin: 0px 0px 0px 0px; padding: 0px; float: left; background-color: #333333; overflow: visible;">
</div>
<!-- Blue -->
<div style="width: 48px; height: 48px; margin: 0px 0px 0px 4px; padding: 0px; float: left; background-color: #00A8EC; overflow: visible;">
</div>
<!-- Orange -->
<div style="width: 48px; height: 48px; margin: 0px 0px 0px 4px; padding: 0px; float: left; background-color: Orange; overflow: visible;">
</div>
</div>
<div style="background-color: Gainsboro; width: 318px; height: 48px; margin: 4px 0px 0px 0px; padding: 0px; overflow: visible;">
</div>
</div>
<div style="background-color: Purple; width: 100px; height: 100px; margin: 0px 0px 0px 4px; padding: 0px; float: left; overflow: visible;">
</div>
</div>
你的标记中是否设置了文档类型?我做了一个小提琴 http://jsfiddle.net/LE6cy,我看到了IE9和Firefox的类似渲染。默认情况下,Jsfiddle 在结果 iframe 中设置<!doctype html>
。
尝试删除空文本节点,因为<div>
向左浮动