IE 6 und doppeltes margin
… und wieder einen tollen Entwurf fertig gestellt. Schaut super aus. Die gängigen Browser (Opera, Firefox, Safari, Chrome und selbst der IE 7+) interpretieren das Layout wie gewünscht, auch wenn der immer noch fehlende CSS3 Support etwas nervig ist.
Nur leider gibt’s noch ein Problem: die definierte Zielgruppe hat nach Analyse zu 18% den Internet Explorer 6 im Einsatz. Immer noch so viel. Okay, starten wir den mal … und machen ihn nach Begutachtung ganz schnell wieder zu — grauenvoll. Das Layout ist ziemlich zerschossen.
Dieses Szenario ist wohl vielen bekannt
Oftmals sind die Eigenheiten der IE-Familie etwas nervig und man muss sich damit rumschlagen.
Nach und nach werde ich versuchen die bekanntesten Bugs im IE hier zu sammeln und zu erläutern sowie die gängisten Workarounds aufzuzeigen. Heute fangen wir mal mit dem Double Margin-Problem an.
Nehmen wir mal an, wir haben zwei nette kleine Container, die nebeneinander angeordnet werden sollen.
#left_wrapper, #right_wrapper {
width: 300px;
float: left;
height: 120px;
margin-left: 10px;
}
Ganz simples Beispiel sollte man denken. Aber der IE 6 zeigt selbst bei diesem Beispiel schon ein erschreckendes Ergebnis: der Abstand nach Links ist doppelt so groß wie er sein sollte — nämlich 20 Pixel. Warum?
Grund
Wird ein Element mit der CSS-Eigenschaft float ausgezeichnet, sollte durch den Browser automatisch die display–Eigenschaft auf inline gesetzt werden. Das geschieht allerdings beim IE 6 nicht. Allerdings tritt dieses Verhalten nur auf, wenn die float–Richtung und margin–Angabe in die gleiche Richtung gesetzt werden (wie hier: links).
Workaround / Lösung
Die Lösung ist relativ einfach: das entsprechende Element mit der float–Angabe bekommt zusätzlich die Eigenschaft:
display: inline;
Anbei noch eine Datei, die diesen Bug demonstriert…
Weiterführende Hilfe
Du hast trotzallem Probleme bei der Darstellung? Poste einfach einen Kommentar und hinterlass’ deine E-Mail, dann versuchen wir das zu beheben
Gerne mehr davon, in deinem Blog wären Tags noch nett