Flexbox: Guía rápida

¿Porqué utilizar Flexbox?

Hoy en día el diseño responsivo y adaptativo es esencial en el desarrollo web, y para facilitarnos esto tenemos Flexbox, que es un modulo de diseño de CSS con el que podemos alinear y distribuir los elementos que se encuentran en un contenedor de manera horizontal o vertical, veamos cómo utilizarlo…

Conceptos básicos

Primero que nada, veamos que elementos ponemos encontrar en un contenedor tipo flexbox:

Flexbox: Guía rápida
  • Contenedor flex: Este es el elemento padre, este tendrá en su interior cada uno de los elementos que alinearemos.
  • Elementos flex (items): Estos son los elementos hijos.
  • Eje principal: Los elementos flex tiene una orientación principal en donde se alinearán, puede ser horizontal (row) o vertical (column), pero por defecto es horizontal.
  • Eje secundario: De la misma manera, los elementos flex tiene una orientación secundaria que es perpendicular a la principal, si la principal es horizontal la secundaria será vertical y viceversa.

Iniciando un elemento flexbox

Para comenzar a trabajar con flexbox, debemos tener el contenedor principal y sus  elementos hijos y al contenedor principal le añadiremos la propiedad Display: flex;

.contenedor-principal{
    Display: flex;
}

Para establecer que dirección seguirán los elementos hijos usaremos flex-direction, determinando el valor del eje principal con alguno de los siguientes valores:

.contenedor-principal{
    Display: flex;
    flex-direction: row;
}
Flexbox: Guía rápida

También podemos evitar que nuestros elementos hijos desborden con flex-wrap 

.contenedor-principal{
    Display: flex;
    flex-direction: row;
    flex-wrap: wrap;
}

Esta propiedad acepta los siguientes valores:

Flexbox: Guía rápida

Y si queremos escribir un poco menos, podemos usar flex-flow para resumir los valores de flex-direction y flex-wrap, por ejemplo de la siguiente manera:

.contenedor-principal{
    Display: flex;
    flex-flow: row wrap;
}

Propiedades de alineación

Ahora veamos que opciones hay para alinear los elementos hijos, recordemos que tenemos un eje principal y un eje secundario a los que les determinamos su orientación, horizontal o vertical, con flex-direction.

Justify-content

Esta propiedad nos ayuda a distribuir los items a lo largo del eje principal y podemos utilizar los siguientes valores:

Flexbox: Guía rápida

Align-content

Esta propiedad se utiliza para controlar la distribución de los ítems cuando tenemos espacio adicional en el eje perpendicular al eje principal, podemos utilizar los siguientes valores:

Flexbox: Guía rápida
Flexbox: Guía rápida

Esta propiedad es especialmente útil cuando trabajamos con diseños que involucran múltiples líneas de elementos flex, como en contenedores que tienen más elementos de los que pueden caber en una sola fila o columna

Align-items

Para distribuir los ítems a lo largo del eje secundario, ya sea en el eje vertical si el eje principal es horizontal o viceversa, tenemos align-items en el que podemos utilizar los siguientes valores:

Flexbox: Guía rápida
Flexbox: Guía rápida

Align-self

Esta propiedad actúa igual que align-items, sin embargo, se utiliza sobre un item hijo específico, al utilizar esta propiedad podemos cambiar el comportamiento del item con respecto a la propiedad align-items, los valores que podemos utilizar son los mismos que align-items, por ejemplo:

Flexbox: Guía rápida

Propiedades de ítems hijos

Hay algunas propiedades que nos ayudan a distribuir y ordenar nuestros ítems a lo largo de nuestro contenedor padre, estas propiedades se escriben directamente en el item específico, veamos cuales son…

Flex-grow

Esta propiedad indica el crecimiento del item con respecto al resto de los items, el valor es un número, veamos un ejemplo:

Flexbox: Guía rápida

Flex-shrink

Esta propiedad indica el decrecimiento del item con respecto al resto de los ítems, el valor es un número, veamos un ejemplo:

Flexbox: Guía rápida

Flex-basis

Esta propiedad se utiliza para establecer un tamaño base del item antes de utilizar las propiedades flex-shrink y flex-grow

Flexbox: Guía rápida

Si queremos escribir un poco menos, podemos usar flex para resumir los valores de flex-grow, flex-shrink y flex-basis, por ejemplo de la siguiente manera:

.contenedor-principal{
    Display: flex;
    flex: 0 0 50px;
}

Order

Por último, veamos como cambiar el orden de los ítems, sin modificar el código html, con flexbox; Para esto tenemos la propiedad order, que se usa directamente en cada item, su valor es un numero y este numero indica el orden de aparición de cada item, veamos un ejemplo:

Flexbox: Guía rápida

Si quieres practicar un poco de los conceptos de flexbox te recomendamos…

FLEXBOX FROGGY: Un juego web en español, que te ayudará a practicar las bases de flexbox de manera dinámica. Utilizando los conceptos que aquí vimos podrás ordenar las ranas en este juego. Super recomendado. Link: https://flexboxfroggy.com/#es

Flexbox: Guía rápida
Comentarios (0)
Deja un comentario
arrow-up-bold-circle