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.
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