Dominio de Flexbox: Guía Técnica de Maquetación CSS

El modelo de caja flexible, comúnmente conocido como Flexbox, es un estándar de diseño unidimensional en CSS que permite distribuir el espacio entre los elementos de una interfaz y mejorar sus capacidades de alineación, incluso cuando el tamaño de los elementos es dinámico o desconocido.

Fundamentos del Contenedor Flex

Para activar este modelo, es necesario definir un contenedor padre con la propiedad display: flex o display: inline-flex. Los elementos que se encuentran directamente dentro de este contenedor se convierten automáticamente en "flex items" (elementos flexibles).

1. flex-direction

Esta propiedda establece el eje principal del contenedor, determinadno la dirección en la que se despliegan los elementos hijos.

.contenedor-dinamico {
 /* Opciones: row | row-reverse | column | column-reverse */
 flex-direction: row; 
}
  • row: Orientación horizontal de izquierda a derecha (por defecto).
  • row-reverse: Horizontal, pero con el origen a la derecha.
  • column: Orientación vertical de arriba hacia abajo.
  • column-reverse: Vertical, comenzando desde la base.

2. flex-wrap

Define si los elementos deben mantenerse en una sola línea o pueden saltar a nuevas líneas si el espacio es insuficiente.

.zona-flexible {
 /* Opciones: nowrap | wrap | wrap-reverse */
 flex-wrap: wrap;
}

3. flex-flow

Es un atajo (shorthand) que combina flex-direction y flex-wrap en una sola declaración.

.mi-layout {
 flex-flow: column wrap;
}

4. justify-content

Controla la alineación de los elementos a lo largo del eje principal (main axis).

.barra-navegacion {
 /* Opciones: flex-start | flex-end | center | space-between | space-around | space-evenly */
 justify-content: space-between;
}
  • center: Los elementos se agrupan en el centro.
  • space-between: El primer elemento queda al inicio y el último al final, distribuyendo el espacio restante proporcionalmente.
  • space-around: Distribuye el espacio de modo que cada elemento tenga el mismo margen a sus lados.

5. align-items

Gestiona la alineación de los elementos en el eje transversal (cross axis) de la línea actual.

.seccion-centrada {
 /* Opciones: flex-start | flex-end | center | baseline | stretch */
 align-items: center;
}

6. align-content

Se utiliza cuando existen múltiples líneas de elementos (gracias a flex-wrap: wrap). Alinea las líneas dentro del contenedor, de forma similar a como justify-content alinea los elementos individuales.

Propiedades de los Elementos Hijos (Flex Items)

Además de las reglas del contenedor, podemos aplicar estilos específicos a cada elemento individual para personalizar su comportamiento.

1. order

Altera el orden de aparición visual de un elemento sin modificar el HTML. El valor por defecto es 0.

.item-prioritario {
 order: -1; /* Aparecerá antes que los demás */
}

2. flex-grow

Especifica el factor de crecimiento de un elemento. Determina qué parte del espacio libre disponible en el contenedor debe asignarse a ese elemento.

.columna-principal {
 flex-grow: 2; /* Crecerá el doble que otros elementos con valor 1 */
}

3. flex-shrink

Indica la capacidad de un elemento para reducir su tamaño cuando el contenedor es más pequeño que la suma de sus hijos. Un valor de 0 evita que el elemento se encoja.

4. flex-basis

Define el tamaño inicial de un elemento antes de que se distribuya el espacio restante. Puede ser un valor en píxeles, porcentaje o auto.

5. flex (Atajo)

Es la forma recomendada para declarar flex-grow, flex-shrink y flex-basis simultáneamente.

.tarjeta-producto {
 /* grow | shrink | basis */
 flex: 1 0 200px;
}

6. align-self

Permite a un elemento individual anular la alineación definida por align-items en el padre.

.boton-inferior {
 align-self: flex-end;
}

Etiquetas: css Flexbox frontend web-design layout

Publicado el 7-8 18:10