¡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
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-flex
clase.Paso 3: Centre div horizontalmente con la
justify-content-center
clase.Paso 4: Centre div verticalmente con el
align-items-center
Paso 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
100vh
truco me ayudó mucho. Bootstrap también proporciona lavh-100
clase 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-auto
centrará 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-1
clase 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 > column
lado de unh1
título.Lo que funcionó fue un simple CSS:
o
fuente