IE6和IE7不能正确处理具有height属性的元素的边距

时间:2009-11-05 19:15:46

标签: html css internet-explorer-6 internet-explorer-7

我在div中有一个h2。他们俩都有边界。 h2具有高度属性和边距。当我在IE6,IE7或IE8兼容性视图中查看我的页面时,h2一直在div的顶部,好像边距是0.但是,如果我在任何其他浏览器中查看它,h2有一些空间就像我期望的那样。

任何人都可以告诉我为什么会这样,以及如何处理它。我试图在IE中进行页面渲染,就像在Firefox中一样,而不将高度设置为自动。

以下是您可以测试以显示问题的页面。尝试在IE6或IE7中查看,然后在任何其他浏览器中尝试:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html><head>
<title>CSS margin test</title>
<style type="text/css">
div {
    border: solid blue 1px}
h2 {
    height:33px; margin:80px 0 0; border: solid red 1px}
</style>
</head>
<body>
<div>
    <h2>test</h2>
</div>
</body></html>

1 个答案:

答案 0 :(得分:2)

使用“zoom:1”CSS属性强制在IE中进行正确的布局。这是IE错误的常见解决方案。把它放在div上会修复你的问题:

div {
    border: solid blue 1px;
    zoom: 1;
}

也可以使用通用修补程序:

* {
    zoom: 1;
}

Google“hasLayout”了解更多信息。