Ir al contenido principal

Alinear verticalmente en Bootstrap 3

Hacía ya tiempo desde mi última publicación en el blog, no os voy a aburrir con los motivos, así que como he encontrado un tema de interes que me ha costado resolver voy directamente al grano.

Estoy desarrollando una página web y entre otras muchas cosas utilizo Bootstrap 3. Se que lo que voy a contar Bootstrap 4 ya lo resuelve de forma sencilla con un par de clases, pero esta entrada va más bien dirigida para aquellos que todavía tienen sus diseños bajo Bootstrap 3 y no han migrado a la nueva versión.

El problema surgió cuando en una página sobre 2 columnas quería centrar verticalmente el contenido de una de ellas, en concreto una foto, buscando en internet, que gran fuente de información la verdad sea dicha, encontré varias soluciones, pero por unas cosas o por otras ninguna acababa de resolver el problema. Hasta que di con una entrada en la web Code Q&A donde se trataba este tema con éxito, al menos para lo que yo buscaba.

Vamos al grano, el tema básicamente es hacer flexible el div row contenedor y alinear verticalmente todos sus elementos, en este caso las columnas, ¿Cómo hacemos esto?, tan simple como crear una clase de css y darle las siguientes propiedades:
.vertical-align { display: flex; align-items: center; }

Una vez creada la clase se la asociamos al div row que queramos hacer flexible:

<div class="container">  
<div class="row vertical-align"> <!-- Aquí añadimos la clase --> 
<div class="col-xs-12 col-sm-6"> ... </div>  
<div class="col-xs-12 col-sm-6"> ... </div> 
</div> 
</div>

Pero aquí me encontré con otro problema cuando el diseño se hacía responsive para formatos col-xs (teléfonos móviles)no funcionaba correctamente, en mi caso solo se mostraba una de las columnas la otra desaparecía. Esto se debe a que Bootstrap 3 no especifica el ancho de las columnas en dispositivos extra pequeños (xs). Como en ese formato ya el flexbox no lo iba a usar (no tiene sentido centrar verticalmente una única columna), la solución a este problema fue usar las media queries para en fomratos xs desactivar el diseño flexbox. ¿Esto cómo se hace?, creando una media querie para añadir al css de la página, en concreto yu usé esta:

/* Extra small devices (767px and down) */ 
@media (max-width: 767px) { 
 .vertical-align
  display: block; /* Elimina el flexbox del row */ 
   } 
}

Y voilá en mi diseño al menos problema resuelto. Espero que a alguno más le sirva de ayuda, al menos esa es la intención de esto.

Hasta la próxima.

Entradas populares de este blog

Solucionar el error Undefined index en php

Estaba haciendo una página web, en concreto un apartado que devolvía una consulta para rellenar un combo box y que el usuario pudiera seleccionar y en base a esa selección devolviese un resultado, y cuando fui a probarlo el combo box que debía devolverme un conjunto de números del 1 al 10, me devolvía una parrafada que decía algo así como "Undefined index: id in C:\xampp\web1\index.php on line 226". Como siempre acudí a nuestro amigo Google y tras leer varias páginas y entradas de blog encontré la solución, al menos la que a mi me funcionó, en una de ellas (no recuerdo cual, sino la linkaría). El asunto parece ser que la variable no estaba seteada y añadiéndo antes de la misma la siguiente instrucción el problema se resolvió: if(isset($_POST['id_jornada'])) Mi variable se llamaba idjornada y el método de envío era POST El ejemplo completo es este: <option value="" <?php if (isset($_POST['id_jornada']))   if (!(strcmp("", $_POST[...

Problemas al restaurar contactos en blackberry

La verdad es que restaurar una copia de seguridad en una blackberry o pasar datos de una blackberry a otra, si todo va bien, es muy sencillo ya que ambas opciones están implementadas en el Blackberry Desktop Software propio de la marca. No me voy a detener en explicar como se hace porque ya hay cientos de páginas en internet que lo hacen, aparte de ser bastante intuitivo. Pero si os voy a comentar el problema que yo tuve por si a alguno más le ocurre sepa como solucionarlo, porque encontrar la solución al mismo si me fue complicado. Renové mi antigua blackberry por otra más moderna y al ir a pasar los datos de una a otra a traves del Desktop Software no me pasaba los datos de la agenda y algunas otras cosas más. Lo intenté de mil maneras, a través de la opción de Cambiar dispositivos, creando una copia de seguridad completa del antiguo y restaurándola en el nuevo, creando una copia de seguridad sólo de la agenda del antiguo y restaurándola en el nuevo...... y nada de ...

Ñ y acentos en php y mysql

El idioma puede ser un quebradero de cabeza no sólo a la hora de aprenderlo sino a la hora de trabajar con él. Todos los que hayáis creado páginas web entendereis de que os hablo y os sonará bastante la palabra cotejamiento. Y si ya trabajas con lenguajes de programación y bases de datos como por ejemplo php y mysql se puede volver una tortura el hecho de mostrar en tú página palabras con ñ o acentuadas sin que te aparezcan cosas como áóñ . Yo he sido uno de esos a los que les ha pasado y que se ha vuelto loco probando una y mil soluciones de las que se muestran por internet, hasta el día que di con el blog de Xavi Esteve. En él encontré la solución a todos mis problemas con las ñ y acentos en php y mysql. Os trascribo tal cual lo que Xavi dice que hay que hacer porque a mi ha sido lo único que me ha funcionado al 100%. Al crear la base de datos MySQL, asegúrate que los campos string y demás esten en utf8_spanish_ci y el cotejamiento de las tablas en utf_unicode_ci (más ...