¡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 containeraltura 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-centeren 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-centeren flexbox parent ( .rowis 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-centeren flexbox parent ( .cardis 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-100hace que la fila tenga toda la altura y my-autocentrará verticalmente la col-sm-12columna.
<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 .rowes ahora display:flex, simplemente puede usarlo align-self-centeren 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-centeren su totalidad .rowpara 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-100en 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
puede alinear verticalmente su contenedor haciendo que el contenedor principal se flexione y agregue
align-items:center:Pluma actualizada
fuente
html, body {height:100%}... ¡agregar eso lo hizo funcionar! ¡Gracias!Las siguientes clases de bootstrap 4 me ayudaron a resolver esto
fuente
Debido a que nada de lo anterior funcionó para mí, estoy agregando otra respuesta.
Objetivo: alinear vertical y horizontalmente un div en una página usando las clases de bootstrap 4 flexbox.
Paso 1: Establezca su div más externo a una altura de
100vh. Esto establece la altura al 100% de la Altura del Veiwport. Si no haces esto, nada más funcionará. Establecerlo en una altura de100%solo es relativo al padre, por lo que si el padre no tiene la altura completa de la ventana gráfica, nada funcionará. En el siguiente ejemplo, configuré el cuerpo a 100vh.Paso 2: Configure el contenedor div para que sea el contenedor flexbox con la
d-flexclase.Paso 3: Centre div horizontalmente con la
justify-content-centerclase.Paso 4: Centre div verticalmente con el
align-items-centerPaso 5: Ejecute la página, vea su div centrado vertical y horizontalmente.
Tenga en cuenta que no hay una clase especial que deba establecerse en el div centrado en sí (el div hijo)
fuente
100vhtruco me ayudó mucho. Bootstrap también proporciona lavh-100clase para esto.fuente
He intentado todas las respuestas aquí, pero descubrí que la diferencia entre h-100 y vh-100 es mi solución:
fuente
En Bootstrap 4 (beta), use
align-middle. Consulte la documentación de Bootstrap 4 sobre alineación vertical :fuente
fuente
Esta línea es donde ocurre la magia
<div class="col-md-6 my-auto">,my-autocentrará el contenido de la columna. Esto funciona muy bien con situaciones como el ejemplo de código anterior donde es posible que tenga una imagen de tamaño variable y necesite tener el texto en la columna a la derecha alineada con ella.fuente
Lo hice de esta manera con Bootstrap
4.3.1:fuente
fuente
flex-grow-1clase a la tarjeta evita que se reduzca.Alineación vertical Usando este bootstrap 4 clases:
p.ej:
y si quieres que los padres sean un círculo:
qué dos clases de CSS personalizadas son las siguientes:
El uso final puede ser como por ejemplo:
fuente
Coloque su contenido dentro de un contenedor flexbox que sea 100% alto, es decir, h-100. Luego justifique el contenido de manera central mediante el uso de la clase justify-content-center .
fuente
use
.my-auto(bootsrap4) clase css en su divfuente
En Bootstrap 4.1.3:
Esto funcionó para mí cuando estaba tratando de centrar una insignia de arranque dentro de una al
container > row > columnlado de unh1título.Lo que funcionó fue un simple CSS:
o
fuente