Estoy buscando una manera de centrar verticalmente el containerdiv dentro del jumbotrony establecerlo en el medio de la página.
El .jumbotrontiene que adaptarse a la altura y ancho total de la pantalla. El .containerdiv tiene un ancho de 1025pxy 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
.jumbotronpara lograr la alineación vertical. Usaría elvertical-centernombre de la clase, por ejemplo.Ejemplo aquí (Un espejo en jsbin) .
Notas importantes (consideradas en la demostración) :
Un valor porcentual de
heightomin-heightpropiedades es relativo al delheightelemento padre, por lo tanto, debe especificarheightexplí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-centeren este caso - no tomará el espacio disponible dentro de la matriz, por lo tanto, tenemos que especificar lawidthpropiedad como:width: 100%.También en algunos navegadores web como se mencionó anteriormente, el elemento flexible,
.containeren este caso, puede no aparecer en el centro horizontalmente. Parece que la aplicación izquierda / derechamargindeautono 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: middledeclaración. Especificaciones del W3C :En los casos en que el
.vertical-centerelemento primario ( elemento en este caso) tiene un elemento explícitoheight, por casualidad si pudiéramos tener un elemento secundario que tenga exactamente el mismo elementoheightprimario, 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-centerby::beforeo::afterpseudoelementos y también cambiar eldisplaytipo predeterminado y el otro elemento secundario,.containertoinline-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
autoo0o cambiar sudisplaytipo anonesi es necesario por lo que:DEMO ACTUALIZADA
Y una cosa más:
Si hay
footer/headersecciones alrededor del contenedor, es mejor colocar esos elementos correctamente (relative,absolute? Depende de usted) y agregar unz-indexvalor más alto (para garantizar) para mantenerlos siempre encima de los demás.fuente
display: flexa un.container, hace que el niño se.rowvoltee. 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-flexyalign-items-centerutilidad 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-100omin-vh-100en 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