Curso 2024-25 - IES El Rincón
Proyecto mantenido por ichigar
El modelo de cajas en CSS (CSS Box Model) es el concepto fundamental que describe cómo los elementos HTML se representan y estructuran en la página web. Cada elemento se trata como una caja rectangular compuesta por las siguientes capas, desde fuera hacia dentro:

width y height.width: 200px; height: 100px;, este será el tamaño del área del contenido.padding-top, padding-right, padding-bottom, padding-left. padding: 10px; /* Aplica 10px de espacio alrededor del contenido */
border-width, border-style y border-color.Ejemplo:
border: 2px solid black; /* Borde 2px de grosor, estilo de linea continuo, color negro */
margin-top, margin-right, margin-bottom, margin-left. margin: 20px; /* Espacio de 20px alrededor del elemento */
content),padding),border),margin).
Hay dos modelos principales:
content-box (Por defecto)
width y height solo incluyen el contenido. El padding y el borde se añaden fuera del tamaño especificado.width: 100px; /* Solo mide el contenido */
padding: 10px;
border: 5px solid black;
/* Tamaño total: 100px (contenido) + 10px * 2 (padding) + 5px * 2 (borde) = 130px */
border-box
width y height incluyen el contenido, el padding y el borde.box-sizing: border-box; /* Incluye todo dentro del tamaño especificado */
width: 100px; /* El tamaño total será de 100px, distribuyendo espacio entre contenido, padding y borde */
El margen siempre se encuentra fuera de la caja y no forma parte de las dimensiones calculadas del elemento (ni en content-box ni en border-box).
Aquí tienes un ejemplo práctico para entender cómo funciona el modelo de cajas en CSS con content-box (por defecto) y border-box.
<!DOCTYPE html>
<html lang="es">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Modelo de cajas</title>
<style>
/* Ejemplo con content-box (por defecto) */
.content-box {
width: 400px;
height: 200px;
padding: 20px;
border: 10px solid blue;
margin: 15px;
box-sizing: content-box; /* No es necesario especificarlo porque es el valor predeterminado */
background-color: lightgray;
}
/* Ejemplo con border-box */
.border-box {
width: 400px;
height: 200px;
padding: 20px;
border: 10px solid green;
margin: 15px;
box-sizing: border-box; /* Incluye padding y border en el tamaño total */
background-color: lightyellow;
}
</style>
</head>
<body>
<h1>Ejemplo del modelo de cajas</h1>
<div class="content-box">Caja con <strong>content-box</strong></div>
<div class="border-box">Caja con <strong>border-box</strong></div>
</body>
</html>
content-box)Tamaño total de la caja:
border-box)Tamaño del contenido real:
Cuando abres el código en un navegador, notarás que:
content-box es más grande porque el padding y el borde se agregan al tamaño total.border-box respeta el tamaño total especificado, ajustando el espacio interno.