Centrar verticalmente con CSS3 Blog
Centrar contenidos verticalmente siempre ha sido una tarea un tanto complicada, existen algunas técnicas como usar posicionamiento absoluto, cambiar el display a tabla y manejar los contenedores como una celda, etc.
La técnica que más me ha gustado consta de tan solo 3 líneas de código en CSS:
.element{ position: relative; top: 50%; transform: translateY(-50%); }
Mediante la propiedad top movemos el elemento al centro del contenedor, pero aún no es suficiente, con la propiedad transform y translateY podemos mover el eje Y del elemento para que ahora esté sobre el centro, con eso es suficiente para centrar perfectamente cualquier cosa, texto, imágenes, divs, etc.
A continuación un ejemplo más claro, primero definimos el html que necesitamos centrar, en este caso centraremos verticalmente un texto y una imagen.
<section class="text"> <p>I'm vertically aligned! Hi ho Silver, away!</p> </section> <section class="image"> <img src="http://placehold.it/70x70"> </section>
Ahora el CSS quedaría de la siguiente manera.
section{ height:200px; border:1px solid #000; text-align:center; } .text p, .image img{ position: relative; top: 50%; -webkit-transform: translateY(-50%); -ms-transform: translateY(-50%); transform: translateY(-50%); }
Con eso estamos centrando verticalmente el contenido, puedes revisar el demo de este ejemplo y verlo en acción.
Happy Coding!
1Comentario
Muy buen aporte gracias