¡Importante! El centro vertical es relativo a la altura del padre
Si el padre del elemento que está tratando de centrar no tiene una altura definida
, ¡ ninguna de las soluciones de centrado vertical funcionará!
Ahora, en el centrado vertical en Bootstrap 4 ...
Puede usar las nuevas utilidades de flexbox y tamaño para hacer la container
altura completa y display: flex
. Estas opciones no requieren CSS adicional (excepto que la altura del contenedor (es decir: html, body) debe ser del 100% ).
Opción 1 align-self-center
en flexbox child
<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
Opción 2 align-items-center
en flexbox parent ( .row
is 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
Opción 3 justify-content-center
en flexbox parent ( .card
is 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
Más información sobre el centrado vertical Bootstrap 4
Ahora que Bootstrap 4 ofrece flexbox y otras utilidades , hay muchos enfoques para la alineación vertical. http://www.codeply.com/go/WG15ZWC4lf
1 - Centro vertical utilizando márgenes automáticos:
Otra forma de centrar verticalmente es usar my-auto
. Esto centrará el elemento dentro de su contenedor. Por ejemplo, h-100
hace que la fila tenga toda la altura y my-auto
centrará verticalmente la col-sm-12
columna.
<div class="row h-100">
<div class="col-sm-12 my-auto">
<div class="card card-block w-25">Card</div>
</div>
</div>
Centro vertical con demostración de márgenes automáticos
my-auto
representa los márgenes en el eje vertical y y es equivalente a:
margin-top: auto;
margin-bottom: auto;
2 - Centro vertical con Flexbox:
Dado que Bootstrap 4 .row
es ahora display:flex
, simplemente puede usarlo align-self-center
en cualquier columna para centrarlo verticalmente ...
<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>
o, use align-items-center
en su totalidad .row
para alinear verticalmente en el centro todo col-*
en la fila ...
<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>
Demostración de columnas de altura vertical de centro vertical
Vea este Q / A al centro, pero mantenga la misma altura
3 - Centro vertical usando las utilidades de pantalla:
Bootstrap 4 tiene utils de visualización que se pueden utilizar para display:table
, display:table-cell
, display:inline
, etc .. Estos pueden ser usados con los utils de alineación vertical a inline align, elementos de celda de tabla inline-block o.
<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>
Centro vertical con demostración de utilidades de pantalla
Más ejemplos
Imagen del centro vertical en el <div>
centro vertical .row en .container
Centro vertical e inferior en el <div>
centro vertical niño dentro de padre padre
Centro vertical jumbotron de pantalla completa
¡Importante! ¿Mencioné altura?
Recuerde que el centrado vertical es relativo a la altura del elemento padre . Si desea centrarse en toda la página, en la mayoría de los casos, este debería ser su CSS ...
body,html {
height: 100%;
}
O use min-height: 100vh
( min-vh-100
en Bootstrap 4.1+) en el padre / contenedor. Si desea centrar un elemento hijo dentro del padre. El padre debe tener una altura definida .
Ver también:
Alineación vertical en
Bootstrap 4 Bootstrap 4 Alineación vertical y horizontal central