CodeForge

Maquetación Web Dinámica / CSS3 fundamentos: la piel

Unidades: px, %, em, rem, vw/vh, dvh y ch

Teoría20 min20 XP

CSS tiene más de 20 unidades de medida, y la pregunta "¿cuál uso?" paraliza a cualquier principiante. La buena noticia: con SEIS cubres el 99% del trabajo profesional, y cada una tiene un cuándo claro. Al final tendrás la tabla de decisión completa.

px: el ancla absoluta

El píxel es fijo: 16px mide lo mismo sin importar el contexto. Es perfecto para lo que NO debe escalar: bordes (1px), sombras, detalles finos. Su debilidad: si el usuario configura su navegador con fuente más grande (por visión reducida), los px no lo respetan.

em y rem: los relativos a la fuente

  • 1em = el font-size del elemento actual (o del padre, si se usa en font-size). Se ENCADENA: em dentro de em se multiplica.
  • 1rem = el font-size de la raíz (html, 16px por defecto). Estable, predecible, sin sorpresas.

%, vw/vh y dvh: los relativos al contexto

  • %: relativo al PADRE. width: 50% = la mitad del contenedor.
  • vw/vh: relativo a la VENTANA (viewport). 100vw = todo el ancho de la pantalla, 100vh = toda la altura.
  • dvh (dynamic viewport height): la versión corregida de vh para móviles. En celulares, la barra del navegador aparece y desaparece; 100vh ignora eso y provoca el clásico "hero que se corta". 100dvh mide la altura REAL visible en cada momento.
hero.css

ch: la unidad tipográfica secreta

1ch = el ancho del carácter "0" de la fuente actual. Su superpoder: limitar el ancho de los párrafos en unidades de LECTURA. La tipografía recomienda líneas de 45-75 caracteres:

prosa.css

La tabla de decisión

Qué estás midiendoUnidad
Tipografía, espaciados del sistemarem
Bordes, sombras, detalles de 1-3pxpx
Algo proporcional a su contenedor%
Secciones a pantalla completadvh / vw
Ancho de texto legiblech
Escalar con la fuente localem

Tu hero con height: 100vh se corta en celulares cuando aparece la barra del navegador. ¿La corrección moderna?

Mini-reto

En tu periódico: pon los font-size en rem, limita los párrafos de las noticias a 65ch, y dale al header min-height: 20dvh. Luego, en DevTools, cambia el font-size del html a 20px y mira cómo TODO escala en proporción — eso es un sistema relativo bien montado.

Qué sigue

Cajas medidas. Ahora, el alma visual: color. La próxima lección va de hex, rgb, hsl y el moderno oklch — con el que por fin los colores "se ven como los piensas".