// Programación I · 07 · Layout

# Grid

Una retícula en el navegador: filas y columnas a la vez

De una dirección a dos

Flexbox

123

Una sola dirección: en fila o en columna.

Grid

123456

Dos direcciones a la vez: filas y columnas.

Una retícula, como en InDesign

Tres líneas para una galería

.galeria {
  display: grid;
  grid-template-columns: 1fr 1fr 1fr;
  gap: 12px;
}
123456

La unidad fr

fr es una fracción: reparte el espacio disponible en partes.

1fr 1fr 1frtres iguales
1fr1fr1fr
2fr 1frla primera, el doble
2fr1fr
200px 1frfija + el resto
200px1fr
repeat(4, 1fr)cuatro iguales
1fr1fr1fr1fr

Ocupar varias celdas

.destacado {
  grid-column: span 2;
}
1 · span 2234 · span 2567

Ideal para destacar un proyecto en la galería de un portfolio.

Una galería que se adapta sola

grid-template-columns: repeat(auto-fit, minmax(150px, 1fr));

Tantas columnas como quepan, cada una de al menos 150px. Sin media queries.

12345678

// grid-template-areas

Dibujar la página


      
header main aside footer

Cada cadena de texto es una fila; cada palabra, una celda. Para cambiar la disposición, basta con cambiar el «dibujo».

// laboratorio

Pruébalo

grid-template-columns
gap
123456

    

¿Flexbox o Grid?

Flexbox

  • Una dirección: fila o columna
  • Manda el contenido: cada elemento ocupa lo que necesita
  • Menús, cabeceras, botones, alinear y centrar

Grid

  • Dos direcciones: filas y columnas
  • Manda la retícula: tú defines las columnas
  • Galerías, tarjetas, estructura de la página

No compiten: se complementan. La página con Grid y, dentro de la cabecera, el logo y el menú con Flexbox.

Dos trucos

El inspector

Igual que con Flexbox, Chrome tiene una etiqueta grid que dibuja las líneas de la retícula sobre la página.

Grid Garden

Un juego para practicar: riegas un huerto escribiendo CSS Grid.

Jugar ↗

// y ahora

¡A maquetar!

Todo esto, con más ejemplos, en los apuntes.

Grid en los apuntes → Presentación de Flexbox →