CSS

CSS

Tutorial CSS: Modelo de caja

Aprende el modelo de caja en CSS: content, padding, border y margin. Domina box-sizing y controla el tamaño de tus elementos web con precisión.

Aprende CSS y certifícate

Anatomía del modelo de caja: content, padding, border y margin

El modelo de caja es uno de los conceptos fundamentales en CSS que determina cómo se representan visualmente los elementos HTML en una página web. Cada elemento en una página se considera como una "caja" rectangular compuesta por cuatro áreas concéntricas que definen su estructura y espacio ocupado.

Estas cuatro áreas, desde el interior hacia el exterior, son:

  • Content (contenido): El área donde se muestra el contenido real del elemento
  • 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 que separa el elemento de otros elementos

Content (Contenido)

El content es la parte central del modelo de caja y representa el área donde se muestra el texto, imágenes u otros elementos HTML anidados. Sus dimensiones se controlan mediante las propiedades width y height.

.box {
  /* Definimos el tamaño del área de contenido */
  width: 200px;
  height: 100px;
  background-color: lightblue;
}

El área de contenido puede contener texto, imágenes u otros elementos HTML. Es importante entender que, por defecto, cuando estableces width y height, estas dimensiones se aplican solo al área de contenido, no a toda la caja.

Padding (Relleno)

El padding es el espacio transparente que rodea el contenido, dentro del borde. Actúa como un "colchón" interno que separa el contenido del borde. El padding hereda el color de fondo del elemento.

Puedes controlar el padding en los cuatro lados de manera independiente:

.box {
  width: 200px;
  height: 100px;
  background-color: lightblue;
  
  /* Padding en los cuatro lados */
  padding-top: 20px;
  padding-right: 30px;
  padding-bottom: 20px;
  padding-left: 30px;
}

O usar la propiedad abreviada padding con diferentes notaciones:

/* Mismo padding en los cuatro lados */
padding: 20px;

/* padding vertical | padding horizontal */
padding: 20px 30px;

/* padding-top | padding-horizontal | padding-bottom */
padding: 10px 30px 20px;

/* padding-top | padding-right | padding-bottom | padding-left */
padding: 10px 15px 20px 25px;

El padding aumenta el tamaño visual de la caja sin afectar el espacio reservado para el contenido.

Border (Borde)

El border es la línea que rodea el padding y el contenido. Puedes personalizar su grosor, estilo y color. Al igual que con el padding, puedes controlar el borde en cada lado de manera independiente.

.box {
  width: 200px;
  height: 100px;
  background-color: lightblue;
  padding: 20px;
  
  /* Borde completo */
  border: 2px solid #333;
  
  /* O controlar cada lado independientemente */
  border-top: 1px dashed red;
  border-right: 2px dotted green;
  border-bottom: 3px double blue;
  border-left: 4px groove orange;
}

También puedes controlar individualmente el grosor, estilo y color de cada borde:

.box {
  /* Grosor de los bordes */
  border-width: 2px 3px 2px 3px; /* arriba, derecha, abajo, izquierda */
  
  /* Estilo de los bordes */
  border-style: solid dashed dotted double;
  
  /* Color de los bordes */
  border-color: red green blue yellow;
}

Los estilos de borde más comunes incluyen: solid, dashed, dotted, double, groove, ridge, inset y outset.

Margin (Margen)

El margin es el espacio transparente que rodea toda la caja y la separa de otros elementos. A diferencia del padding, el margen siempre es transparente (no hereda el color de fondo) y crea espacio entre elementos.

.box {
  width: 200px;
  height: 100px;
  background-color: lightblue;
  padding: 20px;
  border: 2px solid #333;
  
  /* Margen en los cuatro lados */
  margin-top: 20px;
  margin-right: 30px;
  margin-bottom: 20px;
  margin-left: 30px;
}

Al igual que con el padding, puedes usar la propiedad abreviada margin:

/* Mismo margen en los cuatro lados */
margin: 20px;

/* margen vertical | margen horizontal */
margin: 20px 30px;

/* margen-top | margen-horizontal | margen-bottom */
margin: 10px 30px 20px;

/* margen-top | margen-right | margen-bottom | margen-left */
margin: 10px 15px 20px 25px;

Una característica única del margen es el colapso de márgenes: cuando dos márgenes verticales se encuentran, en lugar de sumarse, se toma el valor del margen más grande. Esto ocurre solo con márgenes verticales (top y bottom), no con horizontales.

Visualización del modelo de caja

Para entender mejor cómo se relacionan estas cuatro áreas, podemos visualizarlas con un ejemplo:

.box-model-example {
  /* Contenido */
  width: 200px;
  height: 100px;
  background-color: lightblue;
  
  /* Padding */
  padding: 20px;
  
  /* Border */
  border: 5px solid #333;
  
  /* Margin */
  margin: 30px;
}

En este ejemplo:

  1. El contenido es un rectángulo azul claro de 200×100px
  2. El padding añade 20px de espacio en todos los lados (también azul claro)
  3. El borde es una línea sólida negra de 5px alrededor del padding
  4. El margen crea 30px de espacio transparente alrededor de toda la caja

Inspección del modelo de caja

Las herramientas de desarrollo de los navegadores modernos permiten visualizar fácilmente el modelo de caja de cualquier elemento. Al inspeccionar un elemento, normalmente verás una representación visual de sus dimensiones, padding, border y margin.

Esta visualización es extremadamente útil para depurar problemas de diseño y entender cómo se está aplicando el modelo de caja a tus elementos.

Cálculo del tamaño total

El tamaño total que ocupa un elemento en la página se calcula sumando todas las partes del modelo de caja:

  • Ancho total = margen-izquierdo + borde-izquierdo + padding-izquierdo + ancho + padding-derecho + borde-derecho + margen-derecho

  • Alto total = margen-superior + borde-superior + padding-superior + alto + padding-inferior + borde-inferior + margen-inferior

Entender este cálculo es crucial para crear diseños precisos y predecibles, especialmente cuando trabajas con elementos que deben encajar en espacios específicos.

Diferencias entre content-box y border-box

El modelo de caja en CSS puede comportarse de dos maneras fundamentalmente distintas, dependiendo del valor que asignemos a la propiedad box-sizing. Esta propiedad determina cómo se calculan las dimensiones totales de un elemento, y puede tener un impacto significativo en cómo construimos nuestros layouts.

Por defecto, CSS utiliza el modelo content-box, pero muchos desarrolladores prefieren trabajar con border-box por las ventajas que ofrece. Veamos en detalle cada uno de estos modelos y sus diferencias.

El modelo content-box (valor predeterminado)

Cuando utilizamos el valor predeterminado content-box, las propiedades width y height definen únicamente el tamaño del área de contenido. Esto significa que el padding y el borde se añaden por fuera de las dimensiones especificadas.

.content-box-example {
  box-sizing: content-box; /* Este es el valor por defecto */
  width: 200px;
  height: 100px;
  padding: 20px;
  border: 5px solid #333;
}

En este ejemplo, el ancho total del elemento será:

  • 200px (width) + 20px (padding-left) + 20px (padding-right) + 5px (border-left) + 5px (border-right) = 250px

Y el alto total será:

  • 100px (height) + 20px (padding-top) + 20px (padding-bottom) + 5px (border-top) + 5px (border-bottom) = 150px

Este comportamiento puede resultar contraintuitivo cuando estamos diseñando layouts precisos, ya que tenemos que hacer cálculos mentales adicionales para determinar el espacio real que ocupará un elemento.

El modelo border-box

Con el modelo border-box, las propiedades width y height incluyen el contenido, el padding y el borde. Es decir, estas dimensiones representan el tamaño total visible del elemento (excluyendo el margen, que siempre queda fuera).

.border-box-example {
  box-sizing: border-box;
  width: 200px;
  height: 100px;
  padding: 20px;
  border: 5px solid #333;
}

En este caso, el ancho total del elemento será exactamente 200px, y el área de contenido se reducirá automáticamente para acomodar el padding y el borde:

  • Ancho del contenido = 200px - 20px (padding-left) - 20px (padding-right) - 5px (border-left) - 5px (border-right) = 150px

Lo mismo ocurre con la altura:

  • Alto del contenido = 100px - 20px (padding-top) - 20px (padding-bottom) - 5px (border-top) - 5px (border-bottom) = 50px

Comparación visual

Para entender mejor la diferencia, veamos cómo se comportan ambos modelos con las mismas propiedades:

.box {
  width: 200px;
  height: 100px;
  padding: 20px;
  border: 5px solid #333;
  background-color: lightblue;
}

.content-box {
  box-sizing: content-box; /* Valor predeterminado */
}

.border-box {
  box-sizing: border-box;
}

Con estas reglas:

  • El elemento .content-box ocupará 250px de ancho y 150px de alto
  • El elemento .border-box ocupará exactamente 200px de ancho y 100px de alto

Ventajas de usar border-box

El modelo border-box ofrece varias ventajas prácticas que han llevado a muchos desarrolladores a preferirlo:

  1. Cálculos más intuitivos: El ancho y alto que especificas es exactamente el espacio que ocupará el elemento (sin contar márgenes).

  2. Facilita los layouts responsivos: Cuando trabajas con porcentajes, es mucho más fácil crear layouts que sumen el 100% sin desbordamientos.

/* Con border-box, estos tres elementos ocuparán exactamente el 100% del ancho */
.column {
  box-sizing: border-box;
  width: 33.33%;
  padding: 20px;
  float: left;
}
  1. Simplifica los cambios de padding y borde: Puedes modificar el padding o el borde sin afectar el tamaño total del elemento, lo que evita tener que recalcular dimensiones.

Aplicación global de border-box

Debido a estas ventajas, es una práctica común aplicar border-box a todos los elementos de la página mediante el siguiente código:

*, *::before, *::after {
  box-sizing: border-box;
}

Este fragmento aplica el modelo border-box a todos los elementos HTML, incluidos los pseudo-elementos ::before y ::after, creando un comportamiento consistente en toda la página.

Ejemplo práctico: Creación de columnas

Veamos un ejemplo práctico que ilustra por qué border-box facilita la creación de layouts:

/* Con content-box (predeterminado) */
.columns-content-box {
  box-sizing: content-box;
}

.columns-content-box .column {
  width: 33.33%; /* Parece correcto, pero... */
  padding: 15px;
  border: 1px solid #ddd;
  float: left;
}

/* Con border-box */
.columns-border-box {
  box-sizing: border-box;
}

.columns-border-box .column {
  width: 33.33%; /* Ahora sí funciona correctamente */
  padding: 15px;
  border: 1px solid #ddd;
  float: left;
}

Con content-box, las tres columnas no cabrán en una fila porque el padding y el borde aumentan su ancho total más allá del 33.33%. Con border-box, las tres columnas ocuparán exactamente el 100% del ancho disponible, independientemente del padding y el borde que apliquemos.

Compatibilidad y consideraciones

La propiedad box-sizing es compatible con todos los navegadores modernos. Sin embargo, si necesitas dar soporte a navegadores muy antiguos (como IE7 o anteriores), deberás considerar alternativas o usar prefijos específicos.

/* Para navegadores antiguos */
*, *::before, *::after {
  -webkit-box-sizing: border-box;
  -moz-box-sizing: border-box;
  box-sizing: border-box;
}

Es importante recordar que, aunque border-box simplifica muchos aspectos del diseño, el modelo que elijas dependerá de tus necesidades específicas y del contexto de tu proyecto.

Control del tamaño con width, height, max-width y min-height

El control preciso de las dimensiones de los elementos es fundamental para crear diseños web efectivos. CSS nos proporciona varias propiedades que nos permiten definir y limitar el tamaño de los elementos en nuestra página.

Propiedades básicas: width y height

Las propiedades width y height son las más básicas para controlar el tamaño de un elemento:

.box {
  width: 300px;
  height: 200px;
  background-color: #e0f7fa;
}

Estas propiedades pueden definirse usando diferentes unidades de medida:

  • Píxeles (px): Unidad fija que proporciona control preciso
  • Porcentajes (%): Tamaño relativo al contenedor padre
  • em: Relativo al tamaño de fuente del elemento
  • rem: Relativo al tamaño de fuente del elemento raíz (html)
  • vw/vh: Porcentaje del ancho/alto de la ventana del navegador
.responsive-box {
  width: 50%;        /* Mitad del ancho del contenedor padre */
  height: 20vh;      /* 20% del alto de la ventana del navegador */
  padding: 1rem;     /* Relativo al tamaño de fuente raíz */
}

Es importante entender que, por defecto, estas propiedades definen el tamaño del área de contenido (con box-sizing: content-box) o el tamaño total incluyendo padding y bordes (con box-sizing: border-box).

Limitando dimensiones con max-width y min-width

Las propiedades max-width y min-width nos permiten establecer límites al ancho de un elemento, lo que resulta especialmente útil para crear diseños responsivos:

.responsive-container {
  width: 80%;        /* Ancho preferido */
  max-width: 1200px; /* Pero nunca más ancho que esto */
  min-width: 320px;  /* Y nunca más estrecho que esto */
  margin: 0 auto;    /* Centrado horizontal */
}

La propiedad max-width es particularmente valiosa para crear diseños que se adapten a diferentes tamaños de pantalla. Un caso de uso común es para imágenes responsivas:

img {
  max-width: 100%;   /* La imagen nunca será más ancha que su contenedor */
  height: auto;      /* Mantiene la proporción de aspecto */
}

Este patrón evita que las imágenes se desborden de sus contenedores en pantallas pequeñas, mientras mantienen su proporción de aspecto original.

Controlando la altura con max-height y min-height

De manera similar, max-height y min-height nos permiten establecer límites para la altura de un elemento:

.card {
  width: 300px;
  min-height: 200px;  /* Altura mínima para asegurar espacio suficiente */
  max-height: 400px;  /* Altura máxima para evitar que ocupe demasiado espacio */
  overflow-y: auto;   /* Añade scroll si el contenido excede max-height */
  padding: 20px;
  background-color: #fff;
  box-shadow: 0 2px 5px rgba(0,0,0,0.1);
}

La combinación de min-height con max-height es especialmente útil para elementos con contenido dinámico, como tarjetas de productos o artículos, donde queremos mantener cierta consistencia visual sin recortar contenido importante.

Comportamiento del desbordamiento (overflow)

Cuando el contenido no cabe dentro de las dimensiones especificadas, podemos controlar su comportamiento con la propiedad overflow:

.text-container {
  width: 300px;
  height: 150px;
  overflow: hidden;       /* Oculta el contenido que se desborda */
}

.scrollable-container {
  width: 300px;
  height: 150px;
  overflow: auto;         /* Añade barras de desplazamiento cuando es necesario */
}

.horizontal-scroll {
  width: 300px;
  height: 150px;
  overflow-y: hidden;     /* Sin scroll vertical */
  overflow-x: auto;       /* Scroll horizontal cuando sea necesario */
}

Casos prácticos

Contenedor que se adapta al contenido

A veces queremos que un elemento se adapte a su contenido, pero con ciertos límites:

.adaptive-container {
  width: auto;         /* Se adapta al contenido */
  min-width: 200px;    /* Pero nunca más estrecho que esto */
  max-width: 800px;    /* Y nunca más ancho que esto */
  padding: 20px;
}

Altura mínima con flexibilidad

Para secciones de página que deben ocupar al menos toda la altura de la ventana:

.full-height-section {
  min-height: 100vh;   /* Al menos toda la altura de la ventana */
  display: flex;
  flex-direction: column;
  padding: 40px;
}

Imágenes de fondo responsivas

Para imágenes de fondo que mantienen su proporción y visibilidad:

.hero-banner {
  width: 100%;
  min-height: 300px;
  max-height: 600px;
  background-image: url('banner.jpg');
  background-size: cover;
  background-position: center;
}

Consideraciones para diseño responsivo

Al trabajar con estas propiedades para crear diseños responsivos, es importante considerar:

  • Usar porcentajes y unidades relativas para adaptarse a diferentes tamaños de pantalla
  • Establecer max-width en lugar de width fijo para contenedores principales
  • Combinar con media queries para ajustes específicos según el tamaño de pantalla
.container {
  width: 90%;
  max-width: 1200px;
  margin: 0 auto;
}

.card {
  width: 100%;
  min-height: 200px;
}

/* Ajustes para pantallas medianas */
@media (min-width: 768px) {
  .card {
    width: 48%;
    margin-right: 4%;
  }
  
  .card:nth-child(2n) {
    margin-right: 0;
  }
}

/* Ajustes para pantallas grandes */
@media (min-width: 1024px) {
  .card {
    width: 30%;
    margin-right: 5%;
  }
  
  .card:nth-child(2n) {
    margin-right: 5%;
  }
  
  .card:nth-child(3n) {
    margin-right: 0;
  }
}

Interacción con el texto y contenido

El tamaño de los contenedores también afecta cómo se muestra el texto dentro de ellos:

.text-block {
  width: 100%;
  max-width: 65ch;    /* Limita el ancho a aproximadamente 65 caracteres */
  margin: 0 auto;     /* Centrado para mejor legibilidad */
  line-height: 1.6;   /* Espaciado de línea para mejor legibilidad */
}

La unidad ch es especialmente útil para texto, ya que representa el ancho aproximado de un carácter. Limitar el ancho de bloques de texto a 65-75 caracteres mejora significativamente la legibilidad.

Consejos prácticos

  • Evita alturas fijas cuando sea posible, ya que pueden causar problemas con contenido dinámico
  • Usa min-height en lugar de height para elementos que contienen texto variable
  • Combina max-width con margin: 0 auto para centrar contenedores horizontalmente
  • Considera siempre el comportamiento responsivo al establecer dimensiones
  • Prueba tu diseño en diferentes tamaños de pantalla para asegurar que las dimensiones funcionan correctamente

Dominar estas propiedades de control de tamaño te permitirá crear diseños más robustos y adaptables que funcionan bien en diferentes dispositivos y contextos.

Impacto del box-sizing en el cálculo de dimensiones

La propiedad box-sizing tiene un impacto fundamental en cómo CSS calcula las dimensiones reales de los elementos en una página web. Entender este impacto es crucial para crear diseños predecibles y evitar sorpresas desagradables cuando trabajamos con layouts complejos.

Cálculos dimensionales según el modelo de caja

Cuando definimos el tamaño de un elemento con propiedades como width y height, el resultado final depende directamente del valor de box-sizing que estemos utilizando:

.example {
  width: 300px;
  padding: 20px;
  border: 5px solid #333;
}

Con este código, el ancho real del elemento variará significativamente según el modelo de caja aplicado:

  • Con content-box: 300px + 40px (padding) + 10px (bordes) = 350px de ancho total
  • Con border-box: Exactamente 300px de ancho total, con un área de contenido de 250px

Esta diferencia de 50px puede causar problemas importantes en layouts precisos, especialmente cuando trabajamos con elementos que deben encajar perfectamente en un espacio determinado.

Impacto en layouts de columnas

El impacto de box-sizing se vuelve especialmente evidente cuando creamos layouts de columnas:

.column {
  width: 25%;
  padding: 15px;
  border: 1px solid #ddd;
  float: left;
}

Con este código, intentamos crear un layout de 4 columnas (cada una del 25%). Sin embargo:

  • Con content-box: Cada columna ocupará 25% + 30px (padding) + 2px (bordes) del ancho disponible, lo que sumará más del 100%, provocando que la última columna se desplace a la siguiente fila.

  • Con border-box: Cada columna ocupará exactamente el 25% del ancho disponible, incluyendo padding y bordes, permitiendo que las cuatro columnas encajen perfectamente en una fila.

Visualización de la diferencia en cálculos

Para entender mejor cómo afecta box-sizing al cálculo de dimensiones, veamos un ejemplo comparativo:

.box {
  width: 200px;
  height: 100px;
  padding: 20px;
  border: 5px solid #333;
  background-color: #e0f7fa;
}

Con este código base, las dimensiones reales serían:

Propiedad content-box border-box
Ancho total 250px 200px
Alto total 150px 100px
Área de contenido 200px × 100px 150px × 50px
Espacio disponible para contenido 200px × 100px 150px × 50px

Esta diferencia de cálculo tiene implicaciones importantes para el diseño y la maquetación.

Impacto en elementos anidados

El modelo de caja también afecta significativamente a los elementos anidados, especialmente cuando trabajamos con porcentajes:

.parent {
  width: 500px;
  padding: 50px;
  box-sizing: content-box;
}

.child {
  width: 50%; /* ¿50% de qué exactamente? */
}

En este ejemplo:

  • Si el padre usa content-box, el ancho total del padre es 600px (500px + 100px de padding)
  • El hijo con width: 50% tendrá un ancho de 250px (50% de los 500px del área de contenido del padre)

Si cambiamos el padre a border-box:

.parent {
  width: 500px;
  padding: 50px;
  box-sizing: border-box;
}

Ahora:

  • El ancho total del padre sigue siendo 500px
  • El área de contenido del padre es 400px (500px - 100px de padding)
  • El hijo con width: 50% tendrá un ancho de 200px (50% de los 400px del área de contenido del padre)

Esta diferencia de 50px en el elemento hijo puede romper completamente un diseño si no se tiene en cuenta.

Impacto en el rendimiento de redimensionamiento

El modelo de caja también afecta al comportamiento de redimensionamiento de los elementos:

.resizable {
  width: 300px;
  padding: 20px;
  border: 5px solid #333;
  resize: horizontal;
  overflow: auto;
}

Con content-box, al redimensionar este elemento:

  • Solo cambia el ancho del área de contenido
  • El ancho total siempre será 50px más que el valor de width

Con border-box, al redimensionar:

  • El ancho total cambia directamente
  • El área de contenido se ajusta automáticamente para mantener el padding y el borde dentro del ancho total

Impacto en media queries

El modelo de caja también puede afectar cómo funcionan las media queries en diseños responsivos:

.container {
  width: 768px;
  padding: 20px;
  border: 1px solid #ddd;
}

@media (max-width: 768px) {
  .container {
    width: 100%;
  }
}

Con content-box:

  • El ancho real del contenedor es 810px (768px + 40px de padding + 2px de bordes)
  • La media query se activará cuando la ventana sea menor de 768px, pero el contenedor ya es más ancho que eso

Con border-box:

  • El ancho real del contenedor es exactamente 768px
  • La media query se activará en el punto exacto donde el contenedor necesita adaptarse

Estrategias para manejar el impacto de box-sizing

Para gestionar eficazmente el impacto de box-sizing en tus diseños:

  1. Adopta un enfoque consistente en todo tu proyecto:
/* Aplicar border-box a todos los elementos */
*, *::before, *::after {
  box-sizing: border-box;
}
  1. Documenta tu elección para otros desarrolladores:
/* 
 * Este proyecto utiliza el modelo border-box para todos los elementos
 * Esto significa que width y height incluyen padding y border
 */
  1. Considera el impacto en frameworks y bibliotecas de terceros:
/* Restablecer box-sizing solo para componentes específicos si es necesario */
.third-party-component {
  box-sizing: content-box;
}
  1. Utiliza herramientas de desarrollo para inspeccionar y depurar:

Los navegadores modernos muestran el modelo de caja aplicado y las dimensiones calculadas en sus herramientas de desarrollo, lo que facilita identificar problemas relacionados con box-sizing.

Ejemplo práctico: Formulario responsivo

Veamos un ejemplo práctico que muestra el impacto de box-sizing en un formulario:

/* Con content-box (predeterminado) */
.form-content-box input[type="text"] {
  width: 100%;
  padding: 10px;
  border: 1px solid #ddd;
  box-sizing: content-box;
}

/* Con border-box */
.form-border-box input[type="text"] {
  width: 100%;
  padding: 10px;
  border: 1px solid #ddd;
  box-sizing: border-box;
}

Con content-box, los campos de texto se desbordarán de su contenedor porque su ancho total será 100% + 20px (padding) + 2px (bordes).

Con border-box, los campos de texto encajarán perfectamente en su contenedor, ocupando exactamente el 100% del ancho disponible.

Consideraciones de compatibilidad

Aunque box-sizing tiene excelente soporte en navegadores modernos, es importante considerar:

  • Los navegadores muy antiguos (IE7 y anteriores) no soportan esta propiedad
  • Algunos componentes de terceros pueden asumir un modelo de caja específico
  • Las herramientas de diseño visual pueden utilizar diferentes modelos por defecto

Para proyectos que requieren compatibilidad con navegadores antiguos, puedes usar:

*, *::before, *::after {
  -webkit-box-sizing: border-box;
  -moz-box-sizing: border-box;
  box-sizing: border-box;
}

Conclusión práctica

El impacto de box-sizing en el cálculo de dimensiones es profundo y afecta a prácticamente todos los aspectos del diseño CSS. Comprender este impacto te permitirá:

  • Crear layouts más predecibles
  • Evitar desbordamientos inesperados
  • Simplificar los cálculos de dimensiones
  • Facilitar la creación de diseños responsivos

La elección entre content-box y border-box no es simplemente una preferencia estética, sino una decisión arquitectónica que afecta fundamentalmente a cómo construyes y mantienes tus diseños CSS.

CONSTRUYE TU CARRERA EN IA Y PROGRAMACIÓN SOFTWARE

Accede a +1000 lecciones y cursos con certificado. Mejora tu portfolio con certificados de superación para tu CV.

30 % DE DESCUENTO

Plan mensual

19.00 /mes

13.30 € /mes

Precio normal mensual: 19 €
63 % DE DESCUENTO

Plan anual

10.00 /mes

7.00 € /mes

Ahorras 144 € al año
Precio normal anual: 120 €
Aprende CSS online

Ejercicios de esta lección Modelo de caja

Evalúa tus conocimientos de esta lección Modelo de caja con nuestros retos de programación de tipo Test, Puzzle, Código y Proyecto con VSCode, guiados por IA.

Todas las lecciones de CSS

Accede a todas las lecciones de CSS y aprende con ejemplos prácticos de código y ejercicios de programación con IDE web sin instalar nada.

Introducción A Css

CSS

Introducción Y Entorno

Entorno Para Desarrollar Css

CSS

Introducción Y Entorno

Sintaxis

CSS

Sintaxis De Selectores Y Propiedades

Selectores Básicos

CSS

Sintaxis De Selectores Y Propiedades

Herencia Y Cascada

CSS

Sintaxis De Selectores Y Propiedades

Pseudo-clases Y Pseudo-elementos

CSS

Sintaxis De Selectores Y Propiedades

Colores En Css

CSS

Sintaxis De Selectores Y Propiedades

Unidades De Medida

CSS

Sintaxis De Selectores Y Propiedades

Especificidad

CSS

Sintaxis De Selectores Y Propiedades

Estilos De Fuente

CSS

Estilización De Texto Y Fondo

Propiedades De Texto

CSS

Estilización De Texto Y Fondo

Sombras En Texto Y Cajas

CSS

Estilización De Texto Y Fondo

Propiedades De Fondo

CSS

Estilización De Texto Y Fondo

Fuentes Web

CSS

Estilización De Texto Y Fondo

Efectos De Texto: Gradientes, Recortes

CSS

Estilización De Texto Y Fondo

Tipografía Avanzada

CSS

Estilización De Texto Y Fondo

Modelo De Caja

CSS

Modelo Caja

Propiedades De Posicionamiento

CSS

Modelo Caja

Propiedad 'Display'

CSS

Modelo Caja

Elementos 'Float' Y 'Clear'

CSS

Modelo Caja

Rellenos Y Márgenes

CSS

Modelo Caja

Bordes Y Contornos

CSS

Modelo Caja

Absolute, Fixed, Sticky Y Z-index

CSS

Posicionamiento

Flexbox Para Crear Layouts Y Estructuras

CSS

Flexbox

Css Grid Para Crear Layouts Y Estructuras

CSS

Flexbox

Propiedades Del Contenedor Flex

CSS

Flexbox

Propiedades De Los Items Flex

CSS

Flexbox

Columnas Y Filas En Grid

CSS

Css Grid

Espaciado Y Alineación

CSS

Css Grid

Tipografía Responsive

CSS

Diseño Responsive

Fundamentos Del Diseño Responsive

CSS

Diseño Responsive

Imágenes Responsive

CSS

Diseño Responsive

Funciones Matemáticas

CSS

Variables Y Funciones Css

Transformaciones 2d

CSS

Transformación, Transición, Animación

Transformaciones 3d

CSS

Transformación, Transición, Animación

Animaciones

CSS

Transformación, Transición, Animación

Transiciones

CSS

Transformación, Transición, Animación

Css Para Formularios

CSS

Css Avanzado

Accesibilidad Web Con Css

CSS

Css Avanzado

Container Queries

CSS

Css Avanzado

Selectores Avanzados

CSS

Css Avanzado

Animaciones Y Transiciones

CSS

Técnicas Modernas Y Metodologías

Variables En Css

CSS

Técnicas Modernas Y Metodologías

Diseño Responsive Con Media Queries

CSS

Técnicas Modernas Y Metodologías

Metodologías De Escritura En Css

CSS

Técnicas Modernas Y Metodologías

Accede GRATIS a CSS y certifícate

En esta lección

Objetivos de aprendizaje de esta lección

  • Comprender las cuatro áreas del modelo de caja: content, padding, border y margin.
  • Diferenciar entre los modelos content-box y border-box y su impacto en el cálculo de dimensiones.
  • Aplicar propiedades CSS para controlar el tamaño de los elementos, incluyendo width, height, max-width y min-height.
  • Entender cómo box-sizing influye en el diseño y la creación de layouts responsivos.
  • Utilizar herramientas y buenas prácticas para manejar el modelo de caja en proyectos reales.