El modelo de caja
Dale a una caja width: 200px, 16px de padding y un borde de 2px, y por defecto ocupará 236 píxeles de ancho en la pantalla, no 200.
Cada elemento es una caja
Para maquetar una página, el navegador convierte cada elemento en un rectángulo. Cada caja tiene cuatro capas, de dentro hacia fuera. El área de contenido contiene el texto o la imagen. El relleno (padding) es el espacio dentro de la caja, entre el contenido y el borde, y toma el color de fondo de la caja. El borde es una línea alrededor del relleno. El margen es el espacio fuera del borde que aparta a las demás cajas; siempre es transparente. Las herramientas para desarrolladores del navegador dibujan exactamente este diagrama cuando inspeccionas un elemento, con los números puestos.
Forma abreviada para los cuatro lados
padding, margin y border-width aceptan de uno a cuatro valores, en el sentido de las agujas del reloj empezando por arriba. padding: 16px fija los cuatro lados. padding: 8px 16px fija arriba y abajo en 8, e izquierda y derecha en 16. padding: 4px 8px 12px 16px fija arriba, derecha, abajo e izquierda, en ese orden. Cada lado también se puede fijar por separado, como en margin-top. border: 2px solid #333 fija a la vez el ancho, el estilo y el color; sin un estilo como solid o dashed no se dibuja ningún borde.
box-sizing: el ajuste que casi todo el mundo cambia
Por defecto, width y height fijan solo el tamaño del área de contenido, y el relleno y el borde se suman por encima. Ese es el modelo content-box, y complica la maquetación: dos cajas con width: 50% y algo de relleno ya no caben una al lado de la otra. Con box-sizing: border-box, el ancho incluye el relleno y el borde, y el área de contenido se encoge para dejarles sitio. Muchas hojas de estilos empiezan aplicándolo a todos los elementos con *, *::before, *::after { box-sizing: border-box; }.
Cajas de bloque y cajas en línea
Las cajas se comportan de forma distinta según su valor de display. Las cajas de bloque, como p, h1 y section, empiezan en una línea nueva y se estiran hasta llenar el ancho de su contenedor. Las cajas en línea, como a, strong y span, van dentro de una línea de texto; width y height no se les aplican, y su relleno y margen verticales no apartan a las demás líneas. display: inline-block queda en medio: la caja fluye dentro de la línea como una palabra, pero respeta el ancho, el alto y el relleno, lo que viene bien para etiquetas pequeñas y botones.
Márgenes que colapsan
Hay una regla que sorprende a casi todos. Cuando el margen inferior de un bloque se encuentra con el margen superior del siguiente, no se suman: gana el mayor. Un párrafo con margin-bottom: 20px seguido de un encabezado con margin-top: 30px queda a 30 píxeles de distancia, no a 50. Esto se llama colapso de márgenes, y solo ocurre con los márgenes verticales entre bloques en el flujo normal, no dentro de contenedores flex o grid. Para centrar un bloque en horizontal, dale un width o un max-width y margin: 0 auto: los dos márgenes laterales automáticos se reparten por igual el espacio libre.
outline: none, reemplázalo por otro estilo de foco claro.| caja de contenido | Donde van el texto y las imágenes |
| relleno (padding) | Espacio dentro del borde; muestra el fondo |
| borde (border) | Línea alrededor del relleno; necesita un estilo |
| margen (margin) | Espacio transparente fuera del borde |
| box-sizing: border-box; | width incluye el relleno y el borde |
| colapso de márgenes | Márgenes verticales que se tocan: gana el mayor |
| inline-block | Fluye en una línea pero respeta el ancho y el relleno |
- Ordena las capas de dentro hacia fuera.
- content-box: width 300px, padding 20px, borde 5px. ¿Ancho total?
- border-box: width 300px, padding 20px, borde 5px. ¿Cuánto mide de ancho el área de contenido?
- ¿Qué fija
margin: 10px 20px?- 10 arriba y abajo, 20 a la izquierda y a la derecha
- 10 a la izquierda y a la derecha, 20 arriba y abajo
- 10 arriba, 20 abajo
padding: 1px 2px 3px 4px: ¿cuánto hay a la izquierda?- Un margin-bottom de 20px se encuentra con un margin-top de 30px. ¿De qué tamaño es el espacio?
- ¿Por qué
border: 2px #333no dibuja nada?- No hay un estilo de borde como solid
- El color es demasiado oscuro
- Los bordes necesitan un margen
- ¿Qué valor de display permite que un span tome un ancho y un relleno vertical sin salir de la línea?
- inline-block
- inline
- none
- ¿Cómo centras en horizontal un bloque de 600px de ancho?
- margin: 0 auto
- padding: auto
- text-align: center on the block
- ¿Qué parte de la caja muestra el color de fondo?
- El contenido y el relleno (y lo que está bajo el borde)
- Solo el contenido
- También el margen
- Contenido, relleno, borde, margen.
- content-box suma el relleno y el borde al ancho; border-box los incluye.
- La forma abreviada va en el sentido de las agujas del reloj desde arriba; los márgenes verticales que se tocan colapsan.
Fuentes de este curso (6)
- W3C CSS Working Group specifications: CSS Snapshot 2025, Selectors Level 4, CSS Cascading and Inheritance Level 5, CSS Color Level 4, CSS Values and Units Level 4, CSS Box Model Level 3, CSS Box Sizing Level 3, CSS Fonts Level 4, CSS Flexible Box Layout Level 1, CSS Grid Layout Level 2, Media Queries Level 4 and Level 5 (w3.org/TR/, checked 2026-10-17)
- MDN Web Docs, Learn web development: CSS styling basics and CSS layout, and the CSS reference (developer.mozilla.org/en-US/docs/Learn_web_development/Core/Styling_basics, .../Core/CSS_layout, developer.mozilla.org/en-US/docs/Web/CSS, checked 2026-10-17)
- W3C, CSS history and CSS1 Recommendation of 17 December 1996 (w3.org/Style/CSS20/history.html, w3.org/press-releases/1996/css1-rec, checked 2026-10-17)
- W3C WCAG 2.2, success criteria 1.4.3 Contrast (Minimum)
- 1.4.8 Visual Presentation, 1.4.10 Reflow, 1.4.12 Text Spacing (w3.org/TR/WCAG22/, checked 2026-10-17)
- every code exercise checked with a Playwright probe against a reference solution.
Fecha de consulta: 2026-10-17