Grid Avanzado

Clase 22 de 32Curso de CSS

Resumen

Aprende a dominar CSS Grid con tres técnicas clave que simplifican la maquetación: grid areas, span y grid lines. Con estos patrones podrás definir un layout completo, extender elementos por columnas o filas y posicionarlos con precisión, todo desde CSS, de forma clara y escalable.

¿Cómo crear un layout con grid areas en CSS?

Con grid-template-areas defines un template visual del layout y con grid-area enlazas cada elemento. Así posicionas header, sidebar, content y footer sin cálculos complejos.

  • display: grid activa el modelo de cuadrícula.
  • grid-template-areas dibuja el layout con nombres de áreas.
  • grid-template-columns define anchos (ej: 200px y 1fr).
  • gap y margin-bottom mejoran la separación visual.
  • grid-area enlaza cada bloque con su área del template.

¿Cómo declarar el template de áreas?

.grid-areas {
  display: grid;
  grid-template-areas:
    "header header"
    "sidebar content"
    "footer footer";
  grid-template-columns: 200px 1fr;
  gap: 10px;
  margin-bottom: 20px;
}

/* Estilos base compartidos */
header, .sidebar, .content, footer {
  padding: 20px;
  text-align: center;
  color: white;
}

¿Cómo linkear elementos con grid area?

header { grid-area: header; background: #2ECC71; }
.sidebar { grid-area: sidebar; background: #E74C3C; }
.content { grid-area: content; background: #3498DB; }
footer { grid-area: footer; background: purple; }
  • header ocupa el 100% del ancho al repetirse en la fila: "header header".
  • sidebar queda a la izquierda y content a la derecha.
  • footer también ocupa el 100% con "footer footer".
  • Verifica que los nombres de clases coincidan (ej: .sidebar y no .bar).

¿Cuándo usar span para extender columnas en grid?

Cuando quieres que un ítem se extienda a través de varias columnas o filas consecutivas sin recalcular fracciones, usa span. Es directo y legible.

.grid-span {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 10px;
  margin-bottom: 20px;
}

/* Extender un elemento por 2 columnas */
.item--span-2 { grid-column: span 2; }
  • grid-column: span 2 extiende el elemento por dos columnas.
  • Alternativa más simple que ajustar muchas fracciones con 1fr.
  • Escalable para diseños con muchos elementos.

¿Qué son las grid lines y cómo posicionar por líneas?

Las grid lines son las líneas delimitadoras de columnas y filas. En lugar de pensar en fracciones o span, defines desde qué línea hasta cuál colocar el elemento, tanto en columnas como en filas.

.grid-lines {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 10px;
  margin-bottom: 20px;
}

/* Posicionar por columnas: de la línea 1 a la 3 */
.box-1 {
  grid-column: 1 / 3;
  background: red;
}

/* Posicionar por filas: de la línea 1 a la 3 */
.box-2 {
  grid-row: 1 / 3;
  background: green;
}
  • Las líneas se cuentan desde el borde izquierdo/arriba hacia la derecha/abajo.
  • grid-column: 1 / 3 ocupa desde la línea 1 hasta la 3 (dos columnas de ancho).
  • grid-row: 1 / 3 ocupa desde la línea 1 hasta la 3 (dos filas de alto).
  • Útil cuando necesitas posiciones precisas sin depender de nombres de áreas o span.

¿Te gustaría ver más patrones con CSS Grid o resolver un caso específico? Deja tu duda en los comentarios y cuéntame qué layout quieres construir.