"Vertikale Zentrierung ist nur möglich, wenn das Element absolut positioniert ist und eine bekannte Höhe hat." - Diese Aussage ist nicht genau richtig.
Sie können versuchen, display:inline-block;
und seine Möglichkeit zu verwenden, vertikal in seiner übergeordneten Box ausgerichtet werden. Mit dieser Technik können Sie Elemente ausrichten, ohne ihre Höhe und Breite zu kennen, obwohl Sie zumindest die Höhe des übergeordneten Elements kennen müssen.
Wenn Ihr HTML das ist;
<div id="container">
<div id="aligned-middle" class="inline-block">Middleman</div>
<div class="strut inline-block"> </div>
</div>
Und Ihre CSS ist:
#container {
/* essential for alignment */
height:300px;
line-height:300px;
text-align:center;
/* decoration */
background:#eee;
}
#aligned-middle {
/* essential for alignment */
vertical-align:middle;
/* decoration */
background:#ccc;
/* perhaps, reapply inherited values, so your content is styled properly */
line-height:1.5;
text-align:left;
}
/* this block makes all the "magic", according to http://www.w3.org/TR/CSS2/visudet.html#propdef-vertical-align specification: "The baseline of an 'inline-block' is the baseline of its last line box in the normal flow, unless it has either no in-flow line boxes or if its 'overflow' property has a computed value other than 'visible', in which case the baseline is the bottom margin edge." */
#container .strut {
/* parent's height */
height:300px;
}
.inline-block {
display:inline-block;
*display:inline;/* for IE < 8 */
*zoom:1;/* for IE < 8 */
}
Dann # ausgerichtet-Mitte innerhalb #container zentriert werden. Dies ist die einfachste Anwendung dieser Technik, aber es ist eine nette Erfahrung.
Regeln, die mit "/ * für IE < 8 * /" markiert sind, sollten mithilfe von bedingten Kommentaren in einem separaten Stylsheet platziert werden.
Sie können ein funktionierendes Beispiel für das hier lesen: http://jsfiddle.net/UXKcA/3/
edit: (diese besondere Schnipsel getestet in IE6 und ff3.6, aber ich benutze diese viel, es ist ziemlich Cross-Browser, wenn Sie benötigen würde. Unterstützung für ff < 3, müssten Sie auch display:-moz-inline-stack;
unter display:inline-block;
innerhalb .inline-block
Regel hinzuzufügen.)
Wenn Sie die Ausrichtung sagen, ist nicht klar, mit was Sie das div ausrichten möchten. Meinst du das div zentrieren? –
Meinst du, div in der Mitte vertikal ausrichten – Starx
Sorry, ja ich meine Center-Ausrichtung. –