verticalmente texto imagen elementos div columna centrar boton bootstrap alinear html css twitter-bootstrap flexbox bootstrap-4

html - texto - Centro de alineación vertical en Bootstrap 4



centrar div verticalmente bootstrap (11)

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 del 100% 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 clase d-flex .

Paso 3: Divide el centro horizontalmente con la clase justify-content-center .

Paso 4: Divide el centro 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)

<body style="background-color:#f2f2f2; height:100vh;"> <div class="h-100 d-flex justify-content-center align-items-center"> <div style="height:600px; background-color:white; width:600px;"> </div> </div> </body>

Estoy tratando de centrar mi contenedor en el medio de la página usando Bootstrap 4.


En Bootstrap 4 (beta), use align-middle . Consulte la documentación de Bootstrap 4 sobre alineación vertical :

Cambie la alineación de elementos con las utilidades de alineación vertical . Tenga en cuenta que la alineación vertical solo afecta a los elementos en línea , bloque en línea, tabla en línea y celda de tabla .

Elija entre .align-baseline , .align-top , .align-middle , .align-bottom , .align-text-bottom y .align-text-top según sea necesario.


En Bootstrap 4.1.3:

Esto funcionó para mí cuando estaba tratando de centrar una insignia de bootstrap dentro de un container > row > column lado de un título h1 .

Lo que funcionó fue un simple CSS:

.my-valign-center { vertical-align: 50%; }

o

<span class="badge badge-pill" style="vertical-align: 50%;">My Badge</span>


He intentado todas las respuestas aquí, pero descubrí que la diferencia entre h-100 y vh-100 es mi solución:

<div className=''container vh-100 d-flex align-items-center col justify-content-center''> <div className=""> ... </div> </div >


Las siguientes clases de bootstrap 4 me ayudaron a resolver esto

<div class="col text-center justify-content-center align-self-center"> <img width=3rem src=".." alt="..."> </div>


Lo hice de esta manera con Bootstrap 4.3.1 :

<div class="d-flex vh-100"> <div class="d-flex w-100 justify-content-center align-self-center"> I''m in the middle </div> </div>


puede alinear verticalmente su contenedor haciendo que el contenedor principal se flexione y agregue align-items:center :

body { display:flex; align-items:center; }

Pluma actualizada


¡Importante! El centro vertical es relativo a la altura del padre

Si el elemento primario del elemento que intenta 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 que el container tenga 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 es 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 justify-content-center en flexbox parent ( .card es 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 usando 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 altura completa, y my-auto centrará verticalmente la col-sm-12 .

<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 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 ahora se display:flex , simplemente puede usar align-self-center en cualquier columna para centrarla 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 todo el .row para alinear verticalmente todos los 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 utilidades de visualización que se pueden usar para display:table , display:table-cell , display:inline , etc. Estos se pueden usar con las utilidades de alineación vertical para alinear elementos de celda en línea, bloque en línea o de tabla.

<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 de centro vertical en <div>
Centro vertical .row en .container
Centro vertical e inferior en <div>
Niño de centro vertical dentro del padre
Centro vertical de pantalla completa jumbotron

¡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


<!DOCTYPE html> <html lang="en"> <head> <title>Bootstrap Example</title> <meta charset="utf-8"> <meta name="viewport" content="width=device-width, initial-scale=1"> <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/4.2.1/css/bootstrap.min.css"> <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script> <script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.14.6/umd/popper.min.js"></script> <script src="https://maxcdn.bootstrapcdn.com/bootstrap/4.2.1/js/bootstrap.min.js"></script> </head> <body> <div class="container"> <div class="row align-items-center justify-content-center" style="height:100vh;"> <div>Center Div Here</div> </div> </div> </body> </html>


.jumbotron { position: relative; top: 50%; transform: translateY(-50%); }


<div class="col-lg-5 col-sm-5 offset-1 d-flex"> <div class="offer-txt justify-content-center align-self-center"> <span class="inner-title">Our Offer</span> <h2 class="section-title">Today’s Special </h2> <p>One morning, when Gregor Samsa woke from troubled dreams, he found himself transformed in his bed into vermin. He lay on his armour-like back, and if he lifted his head a little he could see his brown belly.</p> </div> </div>