Antwort #9 am: 18. August 2009, 23:11:26
Da bist du über das alte Problem von IE gestolpert. Der interpretiert das Attribut align="center" obwohl er das eigentlich gar nicht tun sollte. Demnach macht es der FF richtig, er ignoriert diese Anweisung.
Um eine ganze Shop-Seite auf allen Browsern zu zentrieren solltest du folgendes tun:
in der index.html folgendes ergänzen:
<div id="container_ie">
<div id="container">
Dann gehts weiter wie gewohnt mit
<div id="wrap">
... bis ganz nach unten...
</div>
</div>
</div>
Dann legst du in deiner stylesheet.css folgendes an, passenderweise unter dem Punkt:
(aber von der Funktion her ist egal wo)
/* WHOLE SITE WRAPPER */
#container_ie {
text-align: center;
width:100%;
height:auto;
margin: 0px;
padding: 0px; }
#container {
margin: 0 auto;
width:1004px;
/* weitere Angaben nach Belieben und Erforderlichkeit */
}
Warum das Ganze?
Die alten IE interpretieren das align="center" oder auch das im CSS verwendete text-align für alle Seiteninhalte. Damit die das alle richtig machen, kriegen die zunächst einen eigenen Container, der die ganze Seite umfasst nämlich: <div id="container_ie">
Dieser wird dann mit der eigentlich fehlerhaften CSS-Anweisung zentriert. Diese Anweisung wird von normal arbeitenden Browsern ignoriert werden.
Damit die dann die Seite richtig zentrieren, gibts den eigenen "container"
Die festen Leerzeichen dienen dazu einen Fehler in einigen Browsern auszumerzen, der dadurch entsteht, dass ein Container der keinen Inhalt hat (andere Container werden da als Inhalt ignoriert) nicht dargestellt wird. Alternativ kann hier auch ein gif mit einem transparenten Pixel eingesetzt werden, zur Platzersparnis.
Sollte der IE8 inzwischen gelernt haben dass text-align nur auf Text bezogen sein sollte, kannst du mit einer Definition von text-align im "container" die Angabe im "container_ie" wieder überschreiben.