CSS: Modelo caja

CSS
CSS
Actualizado: 30/06/2025

¡Desbloquea el curso completo!

IA
Ejercicios
Certificado
Entrar

Modelo de caja en CSS

El modelo de caja es uno de los conceptos fundamentales que todo desarrollador web debe dominar para crear diseños precisos y profesionales. Este concepto define cómo el navegador calcula el espacio que ocupa cada elemento HTML en la página, estableciendo las reglas que determinan el tamaño final y la posición de todos los componentes visuales.

Cada elemento HTML se comporta como una caja rectangular que contiene diferentes capas de espacio. Estas capas se organizan desde el contenido hacia el exterior, creando una estructura predecible que permite controlar con precisión la apariencia y el espaciado de los elementos.

Anatomía del modelo de caja

El modelo de caja está compuesto por cuatro áreas principales que se superponen desde el centro hacia el exterior:

  • Content (contenido): El área donde se muestra el texto, imágenes u otros elementos
  • Padding (relleno): El espacio transparente entre el contenido y el borde
  • Border (borde): La línea que rodea el padding y el contenido
  • Margin (margen): El espacio transparente exterior que separa el elemento de otros elementos
.example-box {
  width: 200px;
  height: 100px;
  padding: 20px;
  border: 2px solid blue;
  margin: 15px;
}

En este ejemplo, el ancho total que ocupará el elemento será de 254px (200px de contenido + 40px de padding + 4px de borde + 30px de margen), mientras que la altura total será de 169px.

Propiedades de contenido

Las propiedades width y height definen las dimensiones del área de contenido. Estas medidas no incluyen el padding, border ni margin por defecto:

.content-area {
  width: 300px;
  height: 150px;
  background-color: lightblue;
}

Es importante entender que estas dimensiones se refieren únicamente al espacio disponible para el contenido real del elemento.

Trabajando con padding

Guarda tu progreso

Inicia sesión para no perder tu progreso y accede a miles de tutoriales, ejercicios prácticos y nuestro asistente de IA.

Progreso guardado
Asistente IA
Ejercicios
Iniciar sesión gratis

Más de 25.000 desarrolladores ya confían en CertiDevs

El padding crea espacio interno entre el contenido y el borde del elemento. Se puede definir de forma individual para cada lado o aplicar valores uniformes:

/* Padding uniforme en todos los lados */
.uniform-padding {
  padding: 20px;
}

/* Padding específico para cada lado */
.specific-padding {
  padding-top: 10px;
  padding-right: 15px;
  padding-bottom: 10px;
  padding-left: 15px;
}

/* Notación abreviada */
.shorthand-padding {
  padding: 10px 15px; /* vertical horizontal */
}

El padding siempre hereda el color de fondo del elemento, lo que lo convierte en una herramienta útil para crear espacios visuales coherentes.

Configuración de bordes

Los bordes proporcionan una línea visible alrededor del elemento y su padding. Se pueden personalizar en grosor, estilo y color:

.styled-border {
  border-width: 3px;
  border-style: solid;
  border-color: #333;
}

/* Notación abreviada */
.shorthand-border {
  border: 2px dashed red;
}

/* Bordes individuales */
.individual-borders {
  border-top: 1px solid black;
  border-bottom: 3px double blue;
}

Los bordes afectan directamente al tamaño total del elemento, sumándose a las dimensiones del contenido y el padding.

Gestión de márgenes

Los márgenes crean espacio exterior alrededor del elemento, separándolo de otros elementos adyacentes:

.margin-example {
  margin: 20px;
  background-color: yellow;
}

/* Márgenes específicos */
.custom-margins {
  margin-top: 30px;
  margin-bottom: 10px;
  margin-left: auto;
  margin-right: auto; /* Centrado horizontal */
}

Una característica importante de los márgenes es el colapso de márgenes verticales, donde los márgenes superior e inferior de elementos adyacentes se combinan, tomando el valor del margen mayor.

Box-sizing: controlando el cálculo

La propiedad box-sizing determina cómo se calculan las dimensiones totales del elemento:

/* Comportamiento por defecto */
.content-box {
  box-sizing: content-box;
  width: 200px;
  padding: 20px;
  border: 2px solid black;
  /* Ancho total: 244px */
}

/* Cálculo alternativo */
.border-box {
  box-sizing: border-box;
  width: 200px;
  padding: 20px;
  border: 2px solid black;
  /* Ancho total: 200px */
}

El valor border-box es especialmente útil porque hace que el ancho y alto especificados incluyan el padding y el border, facilitando los cálculos de diseño.

Aplicación práctica del modelo

Para crear diseños consistentes, es común aplicar border-box a todos los elementos:

* {
  box-sizing: border-box;
}

.card {
  width: 300px;
  padding: 20px;
  border: 1px solid #ddd;
  margin: 10px;
  background-color: white;
}

Esta configuración garantiza que todos los elementos mantengan las dimensiones especificadas, independientemente del padding y border aplicados.

El dominio del modelo de caja permite crear interfaces más predecibles y facilita la resolución de problemas de espaciado y alineación que son comunes en el desarrollo web.

Completa CSS y certifícate

Únete a nuestra plataforma y accede a miles de tutoriales, ejercicios prácticos, proyectos reales y nuestro asistente de IA personalizado para acelerar tu aprendizaje.

Asistente IA

Resuelve dudas al instante

Ejercicios

Practica con proyectos reales

Certificados

Valida tus conocimientos

Más de 25.000 desarrolladores ya se han certificado con CertiDevs

⭐⭐⭐⭐⭐
4.9/5 valoración