Los mas nuevo

6/recent/ticker-posts

Curso de programación GRATIS Modulo III: Desarrollo Web Parte II - CSS

Portada Módulo 3 HTML
0%
Módulo 3 · CSS
✅ Módulo 3 · HTML
🌐 Proyecto del módulo
Sitio web profesional completo
Completa HTML + CSS + JS para desbloquearlo
Módulo 3 · Desarrollo Web · CSS · 2026

CSS:
darle vida visual a la web

Aprende a diseñar layouts modernos con Flexbox y Grid, y a hacer que tus páginas se vean perfectas en cualquier dispositivo con Responsive Design.

3Lecciones
3Mini quizzes
6Demos visuales
Tu portafolio
🔖 Marcadores
Sin marcadores — usa el botón naranja en cualquier lección.
L5
Fundamentos

Flexbox: alinear elementos en una dimensión

Antes de Flexbox, centrar un elemento en CSS era una fuente de frustración infinita. Flexbox (Flexible Box Layout) es un modelo de diseño de CSS que organiza elementos en una sola dirección — fila o columna — con control total sobre alineación, espacio y orden. Hoy es la herramienta más usada para construir componentes: navbars, tarjetas, botones, listas horizontales.

📦
Analogía: Flexbox es una caja de embalaje inteligente

Imagina una caja donde metes artículos en una fila. Puedes decirle: "pon los artículos pegados a la izquierda", "centra todo", "distribuye el espacio entre ellos", "si no caben en una fila, pásalos a la siguiente". El contenedor (la caja) decide cómo distribuir sus hijos (los artículos). Eso es exactamente Flexbox: un contenedor flexible que controla el flujo de sus elementos hijos.

Cómo activar Flexbox

CSS — Activar Flexbox en un contenedor
/* Esto convierte al elemento en contenedor flex */
.contenedor {
  display: flex;
}

/* Sus hijos directos se vuelven automáticamente "flex items" */
/* y se colocan en fila horizontal por defecto              */

Los dos ejes de Flexbox

Todo en Flexbox gira en torno a dos ejes. El eje principal es la dirección del flujo (flex-direction). El eje cruzado es perpendicular al principal. justify-content controla el eje principal y align-items el cruzado:

CSS — Propiedades del contenedor flex
.contenedor {
  display: flex;

  /* Dirección del eje principal */
  flex-direction: row;           /* → fila (por defecto) */
  flex-direction: row-reverse;   /* ← fila al revés */
  flex-direction: column;        /* ↓ columna */
  flex-direction: column-reverse;/* ↑ columna al revés */

  /* Alineación en el eje principal (horizontal si row) */
  justify-content: flex-start;   /* |●●●       | */
  justify-content: center;       /* |   ●●●    | */
  justify-content: flex-end;     /* |       ●●●| */
  justify-content: space-between;/* |●    ●    ●| */
  justify-content: space-around; /* | ●   ●   ● | */
  justify-content: space-evenly; /* |  ●  ●  ●  | */

  /* Alineación en el eje cruzado (vertical si row) */
  align-items: stretch;         /* los hijos se estiran (por defecto) */
  align-items: flex-start;      /* alineados arriba */
  align-items: center;          /* centrados verticalmente */
  align-items: flex-end;        /* alineados abajo */
  align-items: baseline;        /* alineados por la línea base del texto */

  /* Salto de línea cuando no caben todos */
  flex-wrap: nowrap;             /* todo en una línea (por defecto) */
  flex-wrap: wrap;               /* rompe en varias líneas si es necesario */

  /* Espacio entre hijos */
  gap: 16px;                     /* espacio uniforme entre todos los hijos */
  gap: 12px 24px;               /* fila columna */
}

Demos visuales interactivas

flex-direction: row + justify-content: flex-start (por defecto)
A
B
C
display: flex; — los hijos se colocan en fila, alineados al inicio
justify-content: space-between + align-items: center
Logo
Nav
CTA
justify-content: space-between; align-items: center; → patrón de navbar clásico
justify-content: center + align-items: center → centrado perfecto
¡Centrado!
justify-content: center; align-items: center; — la forma más sencilla de centrar en CSS

Propiedades de los hijos (flex items)

CSS — Propiedades de los flex items
.hijo {
  /* flex-grow: cuánto puede crecer el hijo para llenar espacio libre */
  flex-grow: 0;   /* no crece (por defecto) */
  flex-grow: 1;   /* crece para llenar todo el espacio disponible */

  /* flex-shrink: cuánto puede encogerse si hay poco espacio */
  flex-shrink: 1; /* puede encogerse (por defecto) */
  flex-shrink: 0; /* nunca se encoge (tamaño fijo) */

  /* flex-basis: tamaño base antes de aplicar grow/shrink */
  flex-basis: auto;     /* usa el width/height del elemento */
  flex-basis: 200px;   /* tamaño base fijo */
  flex-basis: 33%;     /* tamaño base porcentual */

  /* Shorthand: flex: grow shrink basis */
  flex: 1;           /* equivale a flex: 1 1 0 — crece y encoge igual */
  flex: 0 0 200px;  /* tamaño fijo de 200px, no crece ni encoge */

  /* align-self: sobreescribe align-items solo para este hijo */
  align-self: flex-end; /* este hijo va al fondo aunque los demás estén centrados */

  /* order: cambia el orden visual sin cambiar el HTML */
  order: -1;          /* aparece primero */
  order: 2;           /* aparece después */
}
flex-grow: los hijos crecen para llenar el espacio
flex:1
flex:2 (doble)
flex:1
El hijo con flex:2 ocupa el doble de espacio que los de flex:1

Casos de uso reales

CSS — Patrones reales con Flexbox
/* ── Navbar clásica ── */
.navbar {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 0 24px;
  height: 64px;
}

/* ── Centrar modal en pantalla ── */
.overlay {
  display: flex;
  justify-content: center;
  align-items: center;
  min-height: 100vh;
}

/* ── Tarjetas que se adaptan al contenido ── */
.card-container {
  display: flex;
  flex-wrap: wrap;
  gap: 20px;
}
.card {
  flex: 1 1 280px; /* crece, encoge, base 280px */
}

/* ── Footer que empuja botón al fondo de una tarjeta ── */
.card-body {
  display: flex;
  flex-direction: column;
  height: 100%;
}
.card-body .btn {
  margin-top: auto; /* empuja el botón al fondo */
}
✅ Flexbox vs. Grid — ¿cuándo usar cada uno?

Usa Flexbox para componentes en una dimensión: navbars, filas de botones, listas horizontales, tarjetas en fila, centrar elementos. Usa Grid (la siguiente lección) para layouts en dos dimensiones: la estructura completa de la página, galerías con filas y columnas simultáneas. En la práctica, los combinarás siempre: Grid para el layout general de la página, Flexbox para los componentes dentro de cada celda.

🧠 Quiz: Quieres hacer una navbar donde el logo esté a la izquierda, los links en el centro y un botón a la derecha, todos centrados verticalmente. ¿Qué propiedades usas en el contenedor?
🎨

¡CSS dominado!

Has completado las tres lecciones de CSS: Flexbox para layouts en una dimensión, Grid para layouts en dos dimensiones, y Responsive Design para que todo se vea perfecto en cualquier pantalla.

El siguiente post cubrirá JavaScript: Variables, Eventos, DOM y Fetch API.


Publicar un comentario

0 Comentarios