3.7 El modelo de caja (Box Model), bordes, márgenes y espacios
Comprender el modelo de caja en CSS —contenido, padding, borde y margen— y utilizarlo para controlar el tamaño y el espacio entre los elementos en una página web.
1. Comprende qué es el modelo de caja en CSS
Cada elemento HTML visible es tratado por CSS como una caja, con diferentes capas que definen su forma, tamaño y espacio.
Cada elemento tiene un contorno invisible que se estructura en 4 capas: contenido, relleno, borde y margen
Este modelo determina cómo se muestran, alinean y colocan los elementos
Controlar esta estructura permite crear interfaces consistentes y limpias
Afecta desde botones hasta tarjetas y formularios.
2. Distingue las partes de una caja CSS
El modelo de caja incluye:
Contenido: texto o elementos visibles.
Padding: espacio interno que rodea el contenido.
Borde: línea que envuelve el padding.
Margen: espacio externo que separa de otros elementos.
Comprenderlas ayuda a diseñar interfaces más controladas y adaptables.
3. Compara cajas en línea y en bloque
Los elementos en HTML pueden comportarse como cajas que fluyen en línea o se apilan como bloques.
Cajas en bloque: ocupan todo el ancho y generan salto de línea. Ej: <div>, <p>.
Cajas en línea: fluyen junto al texto, como <span>, <a>.
El modelo de caja aplica a ambos, pero con restricciones.
Puedes modificar su comportamiento con display.
4. Distingue margin y padding con claridad
Aunque ambos crean espacio, margin y padding tienen propósitos diferentes.
Padding: espacio entre el contenido y el borde.
Margin: espacio exterior que separa de otros elementos.
Padding afecta el fondo; margin no.
Los márgenes pueden colapsar verticalmente entre elementos.
5. Descubre cómo funciona box-sizing
La propiedad `box-sizing` define cómo se calculan las dimensiones de una caja.
content-box: ancho/alto sólo al contenido.
border-box: incluye padding y borde.
Facilita mantener proporciones fijas.
Útil establecerlo como valor global
* { box-sizing: border-box; }
6. Aprende a calcular el tamaño de una caja
El tamaño real puede diferir del width y height definidos.
Con content-box:
ancho = width + paddings + bordes
Con border-box:
ancho = width total declarado
El margen queda fuera del cálculo.
Comprender esto evita problemas de espacio y desbordes.
7. Usa padding para mejorar la legibilidad
El padding mejora la experiencia visual al dar espacio dentro de la caja, útil por varias cosas.
Separa el contenido del borde.
Mejora lectura y apariencia.
También ayuda a organizar bloques de información.
Es clave para jerarquizar contenido.
.tarea { padding: 16px; }
8. Aplica márgenes para separar elementos
El margen ayuda a mantener orden visual entre componentes.
Se pueden aplicar márgenes en cualquier dirección. (left, top, right, bottom)
Define distancias entre elementos vecinos. (Margen horizontal y vertical)
Clave en layouts como listas o tarjetas.
Mejora la lectura y el flujo visual.
.tarea { margin-bottom: 12px; }
9. Personaliza bordes para destacar contenido
Los bordes pueden ayudarte a resaltar elementos o agrupar visualmente bloques.
Puedes personalizar el color, el grosor y el estilo (solid, dashed, dotted, etc.).
También se pueden redondear con border-radius.
.tarea { border: 2px solid #aaa; }
Un borde visible también aporta estructura visual al diseño.
10. Inspecciona cajas con DevTools del navegador
Las herramientas de desarrollo permiten visualizar el modelo de caja.
Chrome, Firefox y Edge lo muestran gráficamente un diagrama del box model.
Selecciona un elemento y observa sus medidas.
Puedes ver el tamaño, padding, borde y márgenes en tiempo real.
Útil para depurar errores visuales o sobreposición de elementos directamente.
Activa el panel “Inspector” > selecciona un elemento > pestaña “Estilos”
11. Conclusión: Controla diseño y espacio con precisión
El modelo de caja organiza visualmente cada componente en una interfaz.
Dominarlo es esencial para cualquier frontend.
Permite controlar espacios y relaciones visuales.
Evita errores de desbordamiento o empuje a otras cajas, mejorando la eficiencia en diseño.