0Pricing
Frontend Academy · Lección

Combinar Flexbox y Grid

Use Grid para la estructura general de la página y Flexbox para la alineación a nivel de componente, identificando cuándo conviene utilizar cada herramienta.

Combinar Flexbox y Grid es una lección gratuita de Frontend Academy en CoddyKit. Esta es la lección 3 de 4. Puedes leer la lección completa abajo gratuitamente — luego la practicas en el navegador con un editor de código integrado y un tutor de IA 24/7. Forma parte de la ruta de aprendizaje de Frontend Academy, y tu progreso se sincroniza en la web y la app de CoddyKit. El curso de Frontend Academy incluye 4 lecciones en total.

Son herramientas complementarias

Flexbox y Grid no son rivales: están diseñados para trabajar juntos. El patrón habitual consiste en usar CSS Grid para la estructura general de la página y, después, Flexbox dentro de cada área de la cuadrícula para organizar el contenido del componente.

Diseño de página con Grid y componentes con Flex

Defina la estructura general de la página con Grid. Dentro de cada área de la cuadrícula, use Flexbox para organizar los componentes: enlaces de navegación en una fila y contenido de tarjetas en una columna.

/* Page skeleton */
body {
  display: grid;
  grid-template-areas: 'header' 'main' 'footer';
  grid-template-rows: auto 1fr auto;
  min-height: 100vh;
}

/* Component inside grid area */
header {
  display: flex;
  justify-content: space-between;
  align-items: center;
}

Patrón de cuadrícula de tarjetas

El patrón clásico: Grid para el diseño de las tarjetas y Flex para el diseño interno de cada tarjeta. Así, las tarjetas se alinean en la cuadrícula, mientras que su contenido interno (imagen, título, cuerpo y pie) se apila correctamente.

.card-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
  gap: 24px;
}
.card {
  display: flex;
  flex-direction: column;
  border-radius: 8px;
  overflow: hidden;
}
.card-body { flex: 1; }  /* push footer down */

Patrón de barra de navegación

Una barra de navegación habitual combina ambos sistemas. La propia navegación es un contenedor flex para el logotipo y los enlaces. La sección de enlaces puede ser otro contenedor flex. Un mega menú puede usar Grid para organizar el contenido en varias columnas.

Diseño Holy Grail

El diseño «Holy Grail» (encabezado, zona central de tres columnas y pie) se crea fácilmente con Grid hoy en día. Las tres columnas —barra lateral izquierda, contenido principal y barra lateral derecha— son columnas de Grid; el contenido de cada una utiliza Flexbox.

.page {
  display: grid;
  grid-template:
    'header header header' auto
    'left   main   right'  1fr
    'footer footer footer' auto
    / 200px 1fr 200px;
  min-height: 100vh;
}

Centrar cualquier elemento: Grid o Flex

Tanto Grid como Flexbox pueden centrar el contenido perfectamente. Grid: place-items: center (abreviatura de align-items + justify-items). Flex: justify-content: center; align-items: center.

.center-grid {
  display: grid;
  place-items: center; /* centers both axes */
  min-height: 100vh;
}

.center-flex {
  display: flex;
  justify-content: center;
  align-items: center;
  min-height: 100vh;
}

Diseño adaptable con barra lateral

En dispositivos móviles: una sola columna (la navegación arriba). En tabletas y pantallas más grandes: barra lateral y contenido uno al lado del otro. Grid hace que esto sea declarativo: cambie template-areas en una media query.

Patrón de icono y texto

Este es un microdiseño muy habitual: un icono junto al texto. Flexbox es perfecto para ello porque se trata de una sola fila con alineación.

.alert {
  display: flex;
  align-items: flex-start;
  gap: 12px;
}
.alert-icon { flex-shrink: 0; width: 20px; }
.alert-body { flex: 1; }

Cuándo elegir uno u otro

Grid cuando piensa en filas Y columnas, cuando necesita alinear elementos en varias pistas o cuando está creando la estructura de una página. Flex cuando piensa en una sola dirección, cuando los elementos deben reducirse y crecer o cuando organiza una fila de botones o una pila de elementos.

No complique el diseño innecesariamente

A veces, un elemento block sencillo con max-width y margin: auto es mejor que una cuadrícula compleja. No todos los diseños necesitan Grid. Use la herramienta más sencilla que resuelva el problema.

Depuración de problemas de diseño

En DevTools, haga clic en las insignias grid/flex del panel Elements para superponer las líneas de la cuadrícula o los contornos de los elementos flex. Esto hace visible la estructura de diseño, que de otro modo sería invisible, y resulta muy útil para diagnosticar desalineaciones.

Comprobación rápida

¿Qué combinación de herramientas de diseño es la más habitual para los diseños de página y de componentes, respectivamente?

Repaso: combinación de Grid y Flex

Grid y Flexbox son complementarios. Use Grid para la estructura bidimensional de la página. Use Flexbox para el contenido interno unidimensional de los componentes. place-items: center en una cuadrícula centra todo. flex-direction: column + flex: 1 en el cuerpo de una tarjeta empuja los pies de las tarjetas hacia abajo. Depure con las insignias de superposición de DevTools.

Preguntas frecuentes

¿La lección «Combinar Flexbox y Grid» es gratis?

Sí — el texto completo de «Combinar Flexbox y Grid» es gratis para leer aquí en la web. Para practicarla de forma interactiva (editor de código integrado y tutor de IA 24/7) y desbloquear el resto del curso de Frontend Academy, actualiza a CoddyKit PRO. El curso de Frontend Academy incluye 4 lecciones en total.

¿Qué aprenderé en «Combinar Flexbox y Grid»?

Use Grid para la estructura general de la página y Flexbox para la alineación a nivel de componente, identificando cuándo conviene utilizar cada herramienta. Practicas Frontend Academy con código real que ejecutas directamente en el navegador, y un tutor de IA 24/7 responde tus preguntas mientras trabajas en la lección.

¿Necesito experiencia previa para empezar Frontend Academy?

No se requiere experiencia previa. Frontend Academy en CoddyKit está estructurado para principiantes hasta estudiantes avanzados, así que puedes empezar aquí o desde el inicio y avanzar a tu ritmo. Esta es la lección 3 de 4.

¿Cuánto tiempo toma la lección «Combinar Flexbox y Grid»?

La mayoría de las lecciones de CoddyKit toman alrededor de 5–10 minutos. Cada una es compacta e interactiva, así que avanzas constantemente y retomas exactamente por donde dejaste en la web y la app.

¿Puedo escribir y ejecutar código en esta lección de Frontend Academy?

Sí. Cada lección de Frontend Academy incluye un editor de código integrado, así que escribes y ejecutas código real directamente en tu navegador y obtienes retroalimentación instantánea de IA — sin configuración local necesaria.

Todas las lecciones de este curso

  1. Profundización en Flexbox: alineación, ajuste y orden
  2. CSS Grid: template-areas auto-fit minmax
  3. Combinar Flexbox y Grid
  4. Variables CSS para crear temas
← Volver a Frontend Academy