← Lenguaje de marcas

UD2 · Guía y taller práctico

CSS: diseño, maquetación y responsive

El mismo sitio de la UD1, ahora con presentación. CSS exige decidir de qué tipo es cada problema —tamaño, espacio o distribución— y saber diagnosticar qué regla está actuando cuando el resultado no es el esperado.

Duración18 sesiones · 6 semanas
ModalidadIndividual, con retos y revisión en pareja
Producto finalEl sitio HTML de la UD1 convertido en una web completa: sistema visual con variables, layout con Flexbox y Grid, responsive sin plantillas y estados de foco visibles.

Antes de empezar

Necesitas
  • El sitio HTML terminado en la UD1, validado en el W3C.
  • Visual Studio Code.
  • Un navegador moderno con DevTools, incluidos sus inspectores de Flexbox y Grid.
  • El validador CSS del W3C, en jigsaw.w3.org/css-validator.
Debes saber
  • Escribir HTML semántico válido: encabezados, listas, enlaces, imágenes, tablas y formularios (UD1).
  • Qué declaran header, nav, main, section, article y footer, y cuándo un div sigue siendo correcto (UD1).
  • Manejar rutas relativas entre archivos y carpetas del proyecto (UD1).
  • Abrir DevTools e inspeccionar el árbol de elementos (UD1).

¿Qué vas a aprender?

En la unidad anterior construimos una web solo con HTML. Nuestra preocupación era responder bien a preguntas como estas:

¿Esto es un título? ¿Esto es una navegación? ¿Esto es una imagen informativa? ¿Esto es un formulario?

El resultado es un sitio con estructura y significado, y prácticamente sin diseño. Ahora le toca a CSS.

El trabajo de las seis semanas anteriores demuestra aquí su utilidad. La UD1 terminó con esta promesa:

Si tu estructura dice lo que las cosas son, el CSS podrá cambiar por completo su apariencia sin tocar una línea de tu HTML.

Vamos a comprobarlo. Sobre una estructura semántica, dar estilo es escribir selectores. Sobre una sopa de div, es adivinar cuál era cuál.

CSS te permitirá controlar colores, tipografía, tamaños, espacios, bordes, la distribución de los elementos, la adaptación a distintas pantallas, los estados interactivos y las transiciones. Pero, igual que en HTML, no se trata de memorizar propiedades. Se trata de aprender a construir y razonar layouts.

La idea que gobierna la unidad

Vas a pasarte seis semanas viendo cosas que no se ven como esperabas. La diferencia entre alguien que aprende CSS y alguien que pelea con CSS está en lo que hace en ese momento.

Cuando algo no se ve como esperabas, no añadas CSS

La reacción natural consiste en escribir otra propiedad por si esta sí funciona, después otra, y finalmente !important. Así se acumula una hoja de estilos que nadie entiende, ni siquiera quien la escribió.

Lo que haremos en su lugar es diagnosticar: inspeccionar el elemento, ver qué regla está actuando de verdad, entender por qué gana, y entonces corregir. CSS también se depura.

Las dos formas de trabajar
  1. No funciona
  2. Añado otra propiedad
  3. Tampoco
  4. !important
La que aprenderemos
  1. Resultado inesperado
  2. Inspeccionar
  3. Identificar la regla
  4. Entender por qué gana
  5. Corregir

El proyecto continúa

No empezamos una web nueva. Partimos del sitio de la UD1 y le añadimos una carpeta:

mi-web/
│
├── index.html
├── productos.html
├── acerca.html
├── contacto.html
│
├── css/
│   └── styles.css      ← nuevo
│
└── img/
    └── ...
El reparto de responsabilidades
  1. HTML · estructura y significado
  2. CSS · presentación y distribución

Condición 1 · el HTML no se retuerce para conseguir un efecto visual

Vas a tener la tentación de meter un div de más, o de cambiar un section por otra cosa, porque así el CSS sale antes. Añadir un contenedor es a veces legítimo y se tratará más adelante; ahora bien, si el cambio empeora lo que el documento significa, el problema es del CSS y hay que resolverlo en el CSS.

Al terminar deberías poder responder a la pregunta de la defensa de la UD1 —«si mañana llega el CSS, ¿qué HTML tendrías que tocar?»— y que la respuesta siga siendo «ninguno».

Condición 2 · sin frameworks CSS

No puedes usar Bootstrap, Tailwind, Bulma, plantillas completas ni constructores visuales.

La razón es concreta. Si escribes class="container d-flex justify-content-between" antes de entender Flexbox, estás aprendiendo los nombres de las clases de una herramienta, no CSS. Más adelante usarás frameworks, y entonces podrás valorar qué te ahorran, qué deciden por ti y qué cuestan. Esa valoración necesita que primero sepas hacerlo a mano.

Condición 3 · la IA, para entender, no para entregar

  1. Antes de preguntar: escribe qué crees que ocurre y qué has comprobado en DevTools.
  2. Pregunta: pide una explicación o pistas, no el CSS completo. Ejemplo: «Mi Grid tiene tres columnas pero desborda a 360 px. Creo que he usado anchos fijos. Explícame qué debería revisar sin darme la solución».
  3. Después: cierra la respuesta y realiza una modificación distinta sin volver a preguntar.

La prueba es siempre la misma: si no puedes cambiar una decisión pequeña sobre tu propia solución —el número de columnas, el eje de un Flexbox o una regla en conflicto— todavía no controlas el código que has entregado.


Herramientas

VS Code ya trae lo necesario para CSS: resaltado, autocompletado, información sobre cada propiedad al pasar el ratón, selector de color, Emmet y formateo. No hacen falta extensiones.

La herramienta nueva de esta unidad es otra:

DevTools

El inspector del navegador. En CSS deja de ser algo que se abre de vez en cuando y pasa a estar abierto siempre. Con él puedes activar y desactivar propiedades, cambiar valores en vivo, ver qué regla se está aplicando y cuál ha sido tachada, dibujar el box model, visualizar un Flexbox o un Grid con sus líneas, y simular tamaños de pantalla.

Durante seis semanas, cada vez que algo no se vea como esperas, la primera acción es F12.

No todo pesa lo mismo

Esencial · debes dominarlo Cascada, selectores, box model, unidades, Flexbox, Grid, responsive y DevTools.
Importante · debes saber aplicarlo Variables, clamp(), object-fit, estados y transiciones.
Ampliación · cuando lo anterior funciona :where(), container queries y CSS anidado.

Si vas justo, prioriza los ocho contenidos esenciales. Las ampliaciones nunca compensan una cascada que no entiendes, un layout que desborda o un foco que no se ve.


Plan de trabajo semanal

Semana Bloque temático Práctica central Horas
Semana 1 Cómo se aplica CSS y quién gana Primer estilo, selectores y diagnóstico de conflictos 3 h
Semana 2 La caja y el sistema visual Box model, unidades, tipografía y variables 3 h
Semana 3 Flujo normal y Flexbox Navegación y componentes en una dimensión 3 h
Semana 4 Grid y responsive Catálogo adaptable y decisión de breakpoints 3 h
Semana 5 Imágenes, estados y movimiento Catálogo irregular, foco visible y transiciones 3 h
Semana 6 Integración, depuración y entrega Interfaz desconocida, CSS forense y revisión por pares 3 h
Total El sitio de la UD1 convertido en una web completa 18 h

Cada sesión dura una hora y mantiene la estructura habitual de la UD1, adaptando el tiempo a la dificultad de cada concepto:

El ritmo de cada sesión
  1. Recupera · 5 min
  2. Aprende y observa · 10–20 min
  3. Practica · 30–40 min
  4. Cierra · 5 min

Los conceptos nuevos avanzan de ejemplo resuelto → ejemplo incompleto → problema parecido → problema nuevo. Aproximadamente dos tercios de la práctica se aplican al proyecto y un tercio a interfaces que no has visto antes. La pregunta previa nunca es «¿qué propiedad copio?», sino «¿qué tipo de problema tengo y qué herramienta encaja?».