Zentrierung: Der neueste coole Weg vs. Der älteste coole Weg

Avatar of Chris Coyier
Chris Coyier am

DigitalOcean bietet Cloud-Produkte für jede Phase Ihrer Reise. Starten Sie mit 200 $ kostenlosem Guthaben!

Dies ist kein umfassender Leitfaden zum Zentrieren. Den haben wir!

Dies ist nur eine kleine Beobachtung über Alt und Neu. Eines der kniffligsten Dinge bei der Zentrierung in CSS ist, wenn man sowohl vertikal als auch horizontal zentrieren muss und die Breite oder Höhe dessen, was man zentriert, nicht kennt. Die vertikale Zentrierung ist dabei die extra knifflige.

Ob Sie es glauben oder nicht, es gab sogar eine Möglichkeit, das bereits in IE 8 zu tun.Der Trick bestand darin, `display: table;` auszunutzen und dass Tabellen diese andere Eigenschaft hatten, `vertical-align: middle;`, die für die vertikale Zentrierung verwendet werden konnte.

Sagen wir, alles, was Sie tun wollten, war, einen Satz perfekt in der Mitte des Browserfensters zu zentrieren

...
<body>
  <span>
    Centered vertically and horizontally.
  </span>
</body>
...

Das konnten Sie so machen

html, body {
  margin: 0;
  height: 100%;
}
body {
  display: table;
  width: 100%;
}
body > span {
  display: table-cell;
  vertical-align: middle;
  text-align: center;
}

Das mag der älteste Trick im Buch der CSS-Zentrierung sein. Hier funktioniert er in IE 8

Heute haben wir modernere Layoutmethoden. Flexbox! CSS Grid!

Hier wird dasselbe mit den modernsten verfügbaren Methoden erreicht

body {
  display: grid;
  height: 100vh;
  margin: 0;
  place-items: center center;
}

Wir müssen nicht einmal den span da anfassen! Das ist sogar so auf dem neuesten Stand, dass Microsoft Edge, das CSS Grid unterstützt, `place-items` noch nicht unterstützt. Sie müssten stattdessen `align-items: center;` und `justify-content: center;` verwenden.

Immer in Bewegung.