IE6 rückt floatende Boxen zu weit ein - was tun?

Die Ausgangssituation: In einem Elternblock sind zwei Spaltenblöcke eingebunden, die entsprechend ihrer Ausrichtung mit der float:left- bzw. float:right-Eigenschaft, sowie margin-left- bzw. margin-right-Eigenschaft ausgezeichnet sind.

Der Außenabstand der beiden Boxen soll zum benachbarten Rahmen des Elternelements 50 Pixel betragen.

Markup:

Code :
1
2
3
4
<div id="wrapper" class="clearfix">
     <div id="leftBox">leftBox</div>
     <div id="rightBox">rightBox</div>
</div>
Stylesheet:

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
#wrapper {
width:650px;
margin:0 auto;
border:1px solid #000;
}
 
#leftBox {
width:250px;
height:250px;
float:left;
margin-left:50px;
background:#dfdfdf;
}
 
#rightBox {
width:250px;
height:250px;
float:right;
margin-right:50px;
background:#cfcfcf;
}
 
.clearfix:after {
content:".";
display:block;
height:0;
clear:both;
visibility:hidden;
}
 
.clearfix {display:inline-block;}
 
/* Hides from IE-mac \*/
* html .clearfix {height:1%;}
.clearfix {display:block;}
/* End hide from IE-mac */
Das Ergebnis in den Browsern:

[CSS] IE6 rückt floatende Boxen zu weit ein - was tun?-float-container_modern-browser.jpg (Firefox, IE7, Netscape, Opera, Safari, usw.)

[CSS] IE6 rückt floatende Boxen zu weit ein - was tun?-float-container_ie6.jpg (IE6)

Anhand des angelegten Maßbandes erkennt man deutlich, dass der IE6 die Außenabstände der beiden Boxen verdoppelt. Aus diesem Grund spricht man hier vom "IE Doubled Float-Margin Bug".

Lösung:

Die betroffenen Boxen zusätzlich mit display:inline auszeichnen:

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#leftBox {
width:250px;
height:250px;
float:left;
margin-left:50px;
background:#dfdfdf;
[B]display:inline;[/B]
}
 
#rightBox {
width:250px;
height:250px;
float:right;
margin-right:50px;
background:#cfcfcf;
[B]display:inline;[/B]
}


mfg Maik