Das horizontale Zentrieren von Elementen sollte für den Webentwickler kein Problem sein, schwieriger wird es allerdings in der Vertikalen. In diesem Artikel möchte ich Dir zwei reine CSS-Lösungen vorstellen.
HTML-Code
Gehen wir von folgender Ausgangslage aus:
<div id="parent">
<div class="child">
<h2>Dieser Text soll vertikal zentriert werden</h2>
</div>
</div>
Display: Flex
Flexbox wird von allen modernen Browsern unterstützt, eine Übersicht der Supports kannst Du Dir hier verschaffen. Bei dieser Methode bekommt lediglich das direkte Elternelement bestimmte Anweisungen:
#parent {
display: flex; /* Aktiviert das Flex-Modell */
align-items: center; /* Zentriert den Child vertikal, relativ zum Parent */
justify-content: center; /* Zentriert den Child horizontal, relativ zum Parent */
}
Der Text sollte in diesem Beispiel nun sowohl vertikal, als auch horizontal zentriert sein.
Display: table
Das Flexbox-Modell ist noch recht neu, weswegen ältere Browser es nicht unterstützen. Alternativ kannst Du Elemente auch mit display: table und display: table-cell vertikal zentrieren. Der Parent bekommt in dem Fall display: table, das Child-Element display: table-cell. Im Anschluss verhalten sich die Elemente wie eine Tabelle und können mit vertical-align: middle zentriert werden. Wichtig: Falls der Parent vorher ein Block-Element war, wird es nötig sein, ihm die Breitevon 100% manuell zuzuweisen.
#parent {
display: table;
width: 100%;
height: 10em;
}
.child {
display: table-cell;
vertical-align: middle;
}
Welche ist Deine favorisierte Methode zum vertikalen Zentrieren von Elementen?
Quelle: Kulturbanause
Hey,
cooler Beitrag. Deine Methode zum vertikalen Zentrieren von Elementen ist auch tatsächlich auch meine Methode.
Liebe Grüße