Hallo,
wieder einmal gibt es differenzen zwischen IE und FF.
Ich habe versucht, mit Hilfe einer Tabelle und dem Befehl center ein Div in der Mitte des Browserfensters zu positionieren.
Im IE funktioniert es wunderbar, nur der FF positioniert es am oberen, rechten Rand…
Tabellen sind zum Auszeichnen von tabellarischen Daten, nicht dazu, ein Layout zu erzwingen. Befehle gibts in HTML nicht, die gibts nur in Programmiersprachen, HTML ist eine Strukturbeschreibungssprache. Das Tag ist hoffnungslos veraltet.
Zentrieren von BLock-Elementen macht man mit CSS und zwar per „margin:0 auto;“
Für vertikale Zentrierung positionierst Du Dein Element auf top:50% und verschiebst es dann mit margin-top um die Hälfte der eigenen Höhe nach oben (negativer margin).
Man könnte es auch mit display:table-cell machen, aber das versteht der IE nicht.
Was zur hölle mache ich falsch?
Jetzt wird nur noch die hälfte des Div´s angezeigt…
Hier mal der ganze code jetzt
[HTML]
background-color: White;
width: 840px;
height: 560px;
text-align: left;
margin:0 auto;
top: 50%;
margin-top: -236.5px;
[/HTML]
Kann man eigentlich, wenn man das Element vertikal zentriert, nicht mehr die übliche Methode anwenden, das Element horizontal zu zentrieren, also per margin:0 auto;?
Denn, die horizontale Zentrierung per left:50%+neg.margin ist ja extrem gefährlich…
Das geht auch.
Funktioniert dann im IE5 natürlich nicht. Dafür verschwindet aber nichts nach links aus dem Browserfenster: Mit Zentrierhilfe und margin: auto
Sollten wir vielleicht ab jetzt so empfehlen.
Body muß dafür 100% hoch sein.
Deswegen fragte ich. Dann gibt es nämlich keinen Grund den Hack bei horizontaler Zentrierung anzuwenden. Eine Zentrierung auf Kosten der Nutzbarkeit finde ich schon schlimm.
Der IE5 kommt doch sicher mit text-align:center zurecht, oder?
Nein, das geht leider nicht. Der Grund liegt darin, dass wegen der vertikalen Zentrierung das Element absolut positioniert sein muss.
Damit ist es „losgelöst“ vom normalen Elementfluss, so dass margin: 0 auto; nicht zum Tragen kommt.
Du hast zu Recht darauf hingewiesen, dass die absolute Variante der zentrierung gefährlich ist. Je nach Viewportgröße können Teile der Seite verschwinden und lassen sich auch nicht durch scrollen herholen.
Das betrifft allerdings nicht nur die horizontale Zentrierung, sondern die vertikale ebenso.
Man muss sich dieses Risikos bewusst sein.
Ich rate deshalb nur zur horizontalen Zentrierung mit margin: 0 auto;
Die ist im Vergleich zur absoluten problemlos.
Auch bei deiner Zentrierhilfe mit margin: 0 auto; gehen Inhaltsteile „verloren“ bzw. werden unsichtbar, wenn das Fenster zu klein wird. Zumindest im IE 7.
Bei dem von mir um 10.50 Uhr geposteten Link bleiben sie dagegen erhalten bzw. lassen sich „herscrollen“. Das halte ich für insofern die bessere Lösung.