Wenn Sie die neuen Browser (IE10+) verwenden,
dann können Sie die Eigenschaft transform nutzen, um ein Div in der Mitte auszurichten.
<div class="center-block">this is any div</div>
Und css für diese sollte sein:
.center-block {
top:50%;
left: 50%;
transform: translate3d(-50%,-50%, 0);
position: absolute;
}
Der Haken an der Sache ist, dass Sie nicht einmal die Höhe und Breite des Divs angeben müssen, da es sich von selbst erledigt.
Wenn Sie ein Div in der Mitte eines anderen Divs positionieren möchten, können Sie die Position des äußeren Divs einfach wie folgt angeben relativ und dann beginnt dieses CSS für Ihr Div zu arbeiten.
Wie es funktioniert:
Wenn Sie links und oben 50 % angeben, wird das Div im unteren rechten Viertel der Seite platziert, wobei das obere linke Ende in der Mitte der Seite verankert wird. Das liegt daran, dass die Eigenschaften left/top (wenn sie in % angegeben werden) auf der Grundlage der Höhe des äußeren div (in Ihrem Fall des Fensters) berechnet werden.
Aber transform verwendet Höhe/Breite des Elements, um die Übersetzung zu bestimmen, so dass Sie div wird nach links (50% Breite) und oben (50% seiner Höhe) zu bewegen, da sie in Negativen gegeben sind, so dass es auf die Mitte der Seite ausrichten.
Wenn Sie ältere Browser (und leider auch IE9) unterstützen müssen, ist die Tabellenzelle die beliebteste Methode, die Sie verwenden können.
3 Stimmen
Hier ist eine einfache, saubere und stabile Möglichkeit, Divs in einem Container nur mit CSS zu zentrieren. stackoverflow.com/a/31977476/3597276
2 Stimmen
Diese Frage ist als Duplikat einer Frage gekennzeichnet, die 5 Jahre später gestellt wurde. Oh StackOverflow.