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ícateAnatomí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:
- El contenido es un rectángulo azul claro de 200×100px
- El padding añade 20px de espacio en todos los lados (también azul claro)
- El borde es una línea sólida negra de 5px alrededor del padding
- 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:
Cálculos más intuitivos: El ancho y alto que especificas es exactamente el espacio que ocupará el elemento (sin contar márgenes).
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;
}
- 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:
- Adopta un enfoque consistente en todo tu proyecto:
/* Aplicar border-box a todos los elementos */
*, *::before, *::after {
box-sizing: border-box;
}
- 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
*/
- 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;
}
- 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.
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.
Propiedades de posicionamiento
Modelo de caja
Sombras en texto y cajas
Sintaxis básica
Estilos de fuente
Animaciones y transiciones
Proyecto CSS Landing page simple
Propiedades de texto
Metodologías BEM, SMACSS, OOCSS
Herencia y cascada
Reto fondos background CSS
Reto sintaxis CSS
Flexbox en diseños modernos
Reto grid de columnas en CSS
Selectores avanzados
Reto formulario estilizado
Proyecto CSS crear una navbar
Reto selectores básicos CSS
Reto Flexbox Card
Propiedad 'display'
Variables en CSS
Grid en diseños de cuadrícula
Reto tema claro/oscuro con variables
Reto modelo caja CSS
Reto implementación de fuentes web
Diseño responsive con media queries
Reto unidades de medida
Sintaxis avanzada
Elementos 'float' y 'clear'
Pseudo-clases y pseudo-elementos
Reto componente responsive
Proyecto CSS Dashboard Responsive
Reto Flexbox Hero
Propiedades de fondo
Introducción a CSS
Reto propiedades texto
Modelo de caja
Selectores básicos
Reto especificidad y cascada
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
Introducción Y Entorno
Entorno Para Desarrollar Css
Introducción Y Entorno
Sintaxis
Sintaxis De Selectores Y Propiedades
Selectores Básicos
Sintaxis De Selectores Y Propiedades
Herencia Y Cascada
Sintaxis De Selectores Y Propiedades
Pseudo-clases Y Pseudo-elementos
Sintaxis De Selectores Y Propiedades
Colores En Css
Sintaxis De Selectores Y Propiedades
Unidades De Medida
Sintaxis De Selectores Y Propiedades
Especificidad
Sintaxis De Selectores Y Propiedades
Estilos De Fuente
Estilización De Texto Y Fondo
Propiedades De Texto
Estilización De Texto Y Fondo
Sombras En Texto Y Cajas
Estilización De Texto Y Fondo
Propiedades De Fondo
Estilización De Texto Y Fondo
Fuentes Web
Estilización De Texto Y Fondo
Efectos De Texto: Gradientes, Recortes
Estilización De Texto Y Fondo
Tipografía Avanzada
Estilización De Texto Y Fondo
Modelo De Caja
Modelo Caja
Propiedades De Posicionamiento
Modelo Caja
Propiedad 'Display'
Modelo Caja
Elementos 'Float' Y 'Clear'
Modelo Caja
Rellenos Y Márgenes
Modelo Caja
Bordes Y Contornos
Modelo Caja
Absolute, Fixed, Sticky Y Z-index
Posicionamiento
Flexbox Para Crear Layouts Y Estructuras
Flexbox
Css Grid Para Crear Layouts Y Estructuras
Flexbox
Propiedades Del Contenedor Flex
Flexbox
Propiedades De Los Items Flex
Flexbox
Columnas Y Filas En Grid
Css Grid
Espaciado Y Alineación
Css Grid
Tipografía Responsive
Diseño Responsive
Fundamentos Del Diseño Responsive
Diseño Responsive
Imágenes Responsive
Diseño Responsive
Funciones Matemáticas
Variables Y Funciones Css
Transformaciones 2d
Transformación, Transición, Animación
Transformaciones 3d
Transformación, Transición, Animación
Animaciones
Transformación, Transición, Animación
Transiciones
Transformación, Transición, Animación
Css Para Formularios
Css Avanzado
Accesibilidad Web Con Css
Css Avanzado
Container Queries
Css Avanzado
Selectores Avanzados
Css Avanzado
Animaciones Y Transiciones
Técnicas Modernas Y Metodologías
Variables En Css
Técnicas Modernas Y Metodologías
Diseño Responsive Con Media Queries
Técnicas Modernas Y Metodologías
Metodologías De Escritura En Css
Técnicas Modernas Y Metodologías
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.