2

我很清楚IE-6 + 7中与s一起出现的著名的双倍边距错误。float我遇到了类似的情况,但是 IE-6 将顶部导航栏的底部边距加倍(实际上在任何地方都没有指定底部边距。)

我不确定这种现象是否是 IE-6 双页边距错误的一个示例,但通常的修复 ( display:inline) 没有任何影响。

这是标记和CSS:

<!DOCTYPE html>
<html>

<head>

<style type = "text/css">

        body {
            margin: 0px;
        }

        .outer-container {
            background-color: #fbfbfb; 
            width: auto; 
            border-bottom:1px solid #ebebeb;
        }

        .header {
            width: 90%;
            min-width: 500px;
            margin: auto;
            margin-left: auto;
            margin-right: auto;
            padding-bottom: 0.3em;
        }

        .header-left-column {
            text-align: left; 
            padding-top: 0.5em;
            font-size:12pt; 
            padding-left: 2em; 
            width: 70%;
            float: left;
            display: inline;
        }

        .header-right-column {
            padding-top: 0.5em;
            text-align: right; 
            font-size:12pt; 
            padding-right: 2em;
            float: right;
            display: inline;
        }

</style>

</head>

<body>

<div class = "outer-container">
    <div class = "header">
        <div class = "header-left-column">
            <b>Option 1</b>
        </div>
        <div class = "header-right-column">
            <b>Option 2</b>
        </div>
        <div style = "height:1px; padding-top:0.1em; clear:both"></div>
    </div>

</div>

</body>

</html>

这是一个显示正确渲染的 jsfiddle 链接:http: //jsfiddle.net/wQ8GQ/

请注意顶部栏中的文本上方和下方的垂直空间几乎相等。然而,在 IE-6上,文本下方的空间增加了一倍:

IE-6 截图

问题:这是著名的“双倍保证金”错误的一个例子吗?如果是这样,为什么不display:inline修复它?(以及如何解决?)

4

1 回答 1

1

改变:

<div style = "height:1px; padding-top:0.1em; clear:both"></div>

为了:

<div style = "height:1px; font-size:1px; padding-top:0.1em; clear:both"></div>

否则 IE6 不会考虑 height:1px,因为它“认为”文本不适合 div。您可以通过将字体大小强制为 1px 来使其工作。

于 2013-06-01T00:33:04.820 回答