Die Optimallösung für vertikale Zentrierung [Update]
CSS ist toll. Zumindest so lange, bis man irgendetwas browserübergreifend vertikal zentrieren muss. Da im Moment Ferien sind und ich es für ein Projekt brauche, habe ich mich einmal diesem Problem angenommen.
Nach kurzer Suche stößt man auf viele interessante Beiträge. Mein Ziel war eine valide Lösung, die im Opera, Firefox und Internet Explorer (Version 6 +7) funktioniert. Besonders hebt sich dabei Yuhus Lösung hervor: In Browsern, die display: table-cell verstehen, wird aus den divs eine “Tabelle” gebaut, sodass man vertical-align: middle nutzen kann. Für den Internet Explorer nutzt man einen Kniff mit top.
Die Lösung tut auch einwandfrei - bis man zum IE7 kommt. Dieser versteht dummerweiße den verwendeten Hack (#inner[id]) falsch und wendet das Stylesheet an - somit ist der div in allen Browser zentriert, nur nicht im IE7.
Doch es gibt einen Hack, der den IE in allen Versionen davon abhält, eine CSS-Anweisung anzuwenden:
html>/**/ body #inner { /* Anweisungen hier */ }
Wunderbar - das ist die Lösung! Somit sieht das verbesserte, valide Hack-CSS so aus:
#outer {height: 400px; overflow: hidden; position: relative;} html>/**/ body #outer {display: table; position: static;} #middle {position: absolute; top: 50%;} /* for explorer only*/ html>/**/ body #middle {display: table-cell; vertical-align: middle; position: static;} html>/**/ body #inner {position: relative; top: -50%} /* for explorer only */ /* optional: #inner {position: static;} */
Ich hoffe, es hilft.
In eigener Sache: Dies ist gleichzeitig ein Test des SyntaxHighlighterWP-Syntax-Plugins… Hoffentlich geht es
Update: Oh, Hab doch tatsächlich ein html>/**/ body vergessen, ist jetzt ergänzt.



BadBoy_ schreibt
am 30. Oktober 2007 um 13:59 Uhr:
omg! so ein aufwand für so nen plöden browser!^^
wieso können sich die ganzen programmierer net ma einigen, das sowas direkt ohne “hacks” und umwege in allen browsern funktioniert?
Nico schreibt
am 30. Oktober 2007 um 14:28 Uhr:
Tja, was will man machen? Die meisten Leute, die sich für das Projekt interessieren, kommen eben mit einem Internet Explorer. Ach, wäre die Welt schön, wenn es nur Firefox und Opera gäbe *schwärm*…
e2b schreibt
am 30. Oktober 2007 um 20:53 Uhr:
Hast du dein Spamproblem gelöst?
Ach, der Code geht über das div hinaus und wird von der Sidebar zugedeckt …
Nico schreibt
am 31. Oktober 2007 um 9:56 Uhr:
Mein Spamproblem ist jetzt dank Spam Karma 2 + Math Comment Spam gelöst - das funktioniert echt gut, auch wenn man es nicht glauben möchte.
Das mit dem Code ist gefixed, danke.