Wichtig! Das vertikale Zentrum ist relativ zur Höhe des Elternteils
Wenn das übergeordnete Element des Elements, das Sie zentrieren möchten, keine definierte
Höhe hat , funktioniert keine der vertikalen Zentrierungslösungen!
Nun zur vertikalen Zentrierung in Bootstrap 4 ...
Sie können die neuen Dienstprogramme für Flexbox & Größe verwenden , um die container
volle Höhe und display: flex
. Diese Optionen erfordern kein zusätzliches CSS (außer dass die Höhe des Containers (dh: HTML, Body) 100% betragen muss ).
Option 1 align-self-center
für Flexbox-Kind
<div class="container d-flex h-100">
<div class="row justify-content-center align-self-center">
I'm vertically centered
</div>
</div>
https://www.codeply.com/go/fFqaDe5Oey
Option 2 align-items-center
für Flexbox-Eltern ( .row
ist display:flex; flex-direction:row
)
<div class="container h-100">
<div class="row align-items-center h-100">
<div class="col-6 mx-auto">
<div class="jumbotron">
I'm vertically centered
</div>
</div>
</div>
</div>
https://www.codeply.com/go/BumdFnmLuk
Option 3 justify-content-center
für Flexbox-Eltern ( .card
ist display:flex;flex-direction:column
)
<div class="container h-100">
<div class="row align-items-center h-100">
<div class="col-6 mx-auto">
<div class="card h-100 border-primary justify-content-center">
<div>
...card content...
</div>
</div>
</div>
</div>
</div>
https://www.codeply.com/go/3gySSEe7nd
Weitere Informationen zur vertikalen Zentrierung von Bootstrap 4
Da Bootstrap 4 nun Flexbox und andere Dienstprogramme bietet , gibt es viele Ansätze für die vertikale Ausrichtung. http://www.codeply.com/go/WG15ZWC4lf
1 - Vertikale Mitte mit automatischen Rändern:
Eine andere Möglichkeit, vertikal zu zentrieren, ist die Verwendung my-auto
. Dadurch wird das Element in seinem Container zentriert. Zum Beispiel h-100
macht die Zeile die volle Höhe und my-auto
zentriert die col-sm-12
Spalte vertikal .
<div class="row h-100">
<div class="col-sm-12 my-auto">
<div class="card card-block w-25">Card</div>
</div>
</div>
Vertikales Zentrum mit Auto Margins Demo
my-auto
stellt Ränder auf der vertikalen y-Achse dar und entspricht:
margin-top: auto;
margin-bottom: auto;
2 - Vertikales Zentrum mit Flexbox:
Da Bootstrap 4 .row
jetzt ist display:flex
, können Sie es einfach align-self-center
für jede Spalte verwenden, um es vertikal zu zentrieren ...
<div class="row">
<div class="col-6 align-self-center">
<div class="card card-block">
Center
</div>
</div>
<div class="col-6">
<div class="card card-inverse card-danger">
Taller
</div>
</div>
</div>
oder verwenden Sie align-items-center
insgesamt .row
, um alle col-*
in der Reihe vertikal zu zentrieren ...
<div class="row align-items-center">
<div class="col-6">
<div class="card card-block">
Center
</div>
</div>
<div class="col-6">
<div class="card card-inverse card-danger">
Taller
</div>
</div>
</div>
Demo für Spalten mit vertikaler Mitte und unterschiedlicher Höhe
Sehen Sie sich diese Frage / Antwort zur Mitte an, aber behalten Sie die gleiche Höhe bei
3 - Vertikales Zentrum mit Anzeige-Dienstprogrammen:
Bootstrap 4 weist Anzeige utils , die verwendet werden können für display:table
, display:table-cell
, display:inline
, etc .. Diese können mit der verwendet werden , den vertikalen Ausrichtung utils auszurichten inline, inline-Block oder Tabellenzellenelementen.
<div class="row h-50">
<div class="col-sm-12 h-100 d-table">
<div class="card card-block d-table-cell align-middle">
I am centered vertically
</div>
</div>
</div>
Vertikales Zentrum mit Display Utils Demo
Weitere Beispiele
Bild in <div>
vertikaler Mitte in vertikaler Mitte. Zeile in .container
Vertikale Mitte und unten in <div>
Kind mit vertikaler Mitte im übergeordneten Vollbild-Jumbotron in vertikaler Mitte
Wichtig! Habe ich Höhe erwähnt?
Denken Sie daran, dass die vertikale Zentrierung relativ zur Höhe des übergeordneten Elements ist. Wenn Sie sich in den meisten Fällen auf die gesamte Seite konzentrieren möchten, sollte dies Ihr CSS sein ...
body,html {
height: 100%;
}
Oder verwenden Sie min-height: 100vh
( min-vh-100
in Bootstrap 4.1+) für das übergeordnete Element / den Container. Wenn Sie ein untergeordnetes Element im übergeordneten Element zentrieren möchten. Der Elternteil muss eine definierte Höhe haben .
Siehe auch:
Vertikale Ausrichtung in Bootstrap 4
Bootstrap 4 Vertikale und horizontale Ausrichtung zentrieren