Estoy buscando una manera de centrar verticalmente el container
div dentro del jumbotron
y establecerlo en el medio de la página.
El .jumbotron
tiene que adaptarse a la altura y ancho total de la pantalla. El .container
div tiene un ancho de 1025px
y debe estar en el medio de la página (centro vertical).
Quiero que esta página tenga el jumbotron adaptado a la altura y el ancho de la pantalla junto con el contenedor verticalmente al centro del jumbotron. ¿Cómo puedo lograrlo?
.jumbotron {
height:100%;
width:100%;
}
.container {
width:1025px;
}
.jumbotron .container {
max-width: 100%;
}
<link href="https://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/3.0.0/css/bootstrap.min.css" rel="stylesheet"/>
<div class="jumbotron">
<div class="container text-center">
<h1>The easiest and powerful way</h1>
<div class="row">
<div class="col-md-7">
<div class="top-bg"></div>
</div>
<div class="col-md-5 iPhone-features" style="margin-left:-25px;">
<ul class="top-features">
<li>
<span><i class="fa fa-random simple_bg top-features-bg"></i></span>
<p><strong>Redirect</strong><br>Visitors where they converts more.</p>
</li>
<li>
<span><i class="fa fa-cogs simple_bg top-features-bg"></i></span>
<p><strong>Track</strong><br>Views, Clicks and Conversions.</p>
</li>
<li>
<span><i class="fa fa-check simple_bg top-features-bg"></i></span>
<p><strong>Check</strong><br>Constantly the status of your links.</p>
</li>
<li>
<span><i class="fa fa-users simple_bg top-features-bg"></i></span>
<p><strong>Collaborate</strong><br>With Customers, Partners and Co-Workers.</p>
</li>
<a href="pricing-and-signup.html" class="btn-primary btn h2 lightBlue get-Started-btn">GET STARTED</a>
<h6 class="get-Started-sub-btn">FREE VERSION AVAILABLE!</h6>
</ul>
</div>
</div>
</div>
</div>
html
css
twitter-bootstrap
twitter-bootstrap-3
vertical-alignment
usuario1012181
fuente
fuente
Respuestas:
La forma de caja flexible
La alineación vertical ahora es muy simple mediante el uso del diseño de caja flexible . Hoy en día, este método es compatible con una amplia gama de navegadores web, excepto Internet Explorer 8 y 9. Por lo tanto, necesitaríamos usar algunos hacks / polyfills o diferentes enfoques para IE8 / 9.
A continuación, le mostraré cómo hacerlo en solo 3 líneas de texto (independientemente de la sintaxis anterior de flexbox) .
Nota: es mejor usar una clase adicional en lugar de alterar
.jumbotron
para lograr la alineación vertical. Usaría elvertical-center
nombre de la clase, por ejemplo.Ejemplo aquí (Un espejo en jsbin) .
Notas importantes (consideradas en la demostración) :
Un valor porcentual de
height
omin-height
propiedades es relativo al delheight
elemento padre, por lo tanto, debe especificarheight
explícitamente el del padre.La sintaxis del proveedor con prefijo / anterior se omitió en el fragmento publicado debido a la brevedad, pero existe en el ejemplo en línea.
En algunos de los viejos navegadores web como Firefox 9 (en la que he probado) , el contenedor Flex -
.vertical-center
en este caso - no tomará el espacio disponible dentro de la matriz, por lo tanto, tenemos que especificar lawidth
propiedad como:width: 100%
.También en algunos navegadores web como se mencionó anteriormente, el elemento flexible,
.container
en este caso, puede no aparecer en el centro horizontalmente. Parece que la aplicación izquierda / derechamargin
deauto
no tiene ningún efecto en el elemento flexible.Por lo tanto, necesitamos alinearlo por
box-pack / justify-content
.Para obtener más detalles y / o alineación vertical de columnas, puede consultar el siguiente tema:
La forma tradicional de los navegadores web heredados
Esta es la vieja respuesta que escribí cuando respondí esta pregunta. Este método se ha discutido aquí y se supone que también funciona en Internet Explorer 8 y 9. Lo explicaré brevemente:
En el flujo en línea, un elemento de nivel en línea se puede alinear verticalmente al medio mediante
vertical-align: middle
declaración. Especificaciones del W3C :En los casos en que el
.vertical-center
elemento primario ( elemento en este caso) tiene un elemento explícitoheight
, por casualidad si pudiéramos tener un elemento secundario que tenga exactamente el mismo elementoheight
primario, podríamos mover la línea base del elemento primario al punto medio del total de altura alta y sorprendentemente hacer que nuestro niño en flujo deseado - el.container
- se alinee verticalmente al centro.Todos juntos
Dicho esto, podríamos crear un elemento de altura completa dentro de
.vertical-center
by::before
o::after
pseudoelementos y también cambiar eldisplay
tipo predeterminado y el otro elemento secundario,.container
toinline-block
.Luego, use
vertical-align: middle;
para alinear los elementos en línea verticalmente.Aqui tienes:
DEMO DE TRABAJO .
Además, para evitar problemas inesperados en pantallas pequeñas adicionales, puede restablecer la altura de la pseudo-elemento a
auto
o0
o cambiar sudisplay
tipo anone
si es necesario por lo que:DEMO ACTUALIZADA
Y una cosa más:
Si hay
footer
/header
secciones alrededor del contenedor, es mejor colocar esos elementos correctamente (relative
,absolute
? Depende de usted) y agregar unz-index
valor más alto (para garantizar) para mantenerlos siempre encima de los demás.fuente
display: flex
a un.container
, hace que el niño se.row
voltee. Parece que la forma flexbox, por lo tanto, requeriría que renunciemos al uso de algunas de las principales características de arranque.Actualización 2019
Bootstrap 4 incluye flexbox, por lo que el método de centrado vertical es mucho más fácil y no requiere CSS adicional .
Sólo tiene que utilizar las
d-flex
yalign-items-center
utilidad clases ..http://www.codeply.com/go/ui6ABmMTLv
Importante: el centrado vertical es relativo a la altura . El contenedor principal de los elementos que intenta centrar debe tener una altura definida . Si desea el alto de la página, use
vh-100
omin-vh-100
en el padre. Por ejemplo:Ver también: Centro de alineación vertical en Bootstrap 4
fuente
agregue Bootstrap.css y luego agregue esto a su CSS
fuente
En Bootstrap 4 :
para centrar al niño horizontalmente , use bootstrap-4 class:
para centrar al niño verticalmente , use la clase bootstrap-4:
pero recuerde no olvide usar la clase d-flex con estas, es una clase de utilidad bootstrap-4, así
Nota: asegúrese de agregar utilidades bootstrap-4 si este código no funciona
Sé que no es la respuesta directa a esta pregunta, pero puede ayudar a alguien
fuente
Mi técnica preferida:
Manifestación
Ver también este violín !
fuente
Probado en IE, Firefox y Chrome.
Encontrado en https://css-tricks.com/centering-css-complete-guide/
fuente
para bootstrap4 centro vertical de pocos artículos
d-flex para reglas flex
columna flexible para dirección vertical en artículos
justify-content-center para centrar
style = 'height: 300px;' debe tener para los puntos de ajuste donde el centro sea calc o use la clase h-100
luego para el centro horizontal div d-flex justify-content-center y algún contenedor
entonces tenemos una jerarquía de 3 etiquetas: div-column -> div-row -> div-container
fuente
Si está utilizando Bootstrap 4, solo tiene que agregar 2 divs:
Las clases: d-table, d-table-cell, w-100, h-100 y align-middle harán el trabajo
fuente
Dale a la clase contenedor
Dale al div que está dentro del contenedor:
Todo el contenido dentro de este div se mostrará en el medio de la página.
fuente
Esta es la forma en que estoy usando para alinear contenido verticalmente: arriba / centro / abajo con bootstrap 3 filas. Bootstrap 3 columnas con la misma altura y alineadas verticalmente.
Aquí hay una demostración de JSFiddle .
fuente