Visualizador de modelos de cajas CSS

Ajusta margin, border, padding y las dimensiones del contenido, y visualiza el modelo de caja CSS en directo.

Dimensiones

Padding (px)

Borde (px)

Margen (px)

margen
borde
padding
200 × 120

  

Cómo usar

  1. Introduce los valores del modelo de caja: define margen, borde, padding y dimensiones del contenido en los campos o los deslizadores interactivos.
  2. Explora la visualización: el diagrama clásico de cajas anidadas se actualiza en tiempo real, margen (naranja), borde (amarillo), padding (verde) y contenido (azul), todos claramente etiquetados.
  3. Copia el CSS: haz clic en Copiar el CSS para obtener las propiedades completas del modelo de caja del elemento configurado.

¿Por qué usar el visualizador del modelo de caja CSS?

El modelo de caja CSS es uno de los conceptos más fundamentales del diseño web, y una de las fuentes de bugs más habituales, sobre todo al mezclar valores de box-sizing, colapso de márgenes y dimensionamiento de bordes. Este visualizador interactivo hace el modelo de caja concreto y tangible: ajustas los valores y ves inmediatamente cómo se apilan margen, borde y padding alrededor del contenido. Esencial para aprender, depurar y enseñar CSS.

Funcionalidades

Preguntas frecuentes

¿Cuál es la diferencia entre content-box y border-box?

Con content-box (por defecto), width y height se aplican únicamente a la zona de contenido, padding y borde se añaden al tamaño total del elemento. Con border-box, width y height incluyen padding y borde, lo que hace los tamaños más predecibles. La mayoría de los resets CSS modernos aplican box-sizing: border-box a todos los elementos.

¿Qué es el colapso de márgenes?

Cuando dos márgenes verticales se tocan (entre elementos block adyacentes o entre padre y primer/último hijo), se fusionan en un único margen igual al mayor de los dos valores. Esto no ocurre con los hijos flex o grid, ni con elementos que tengan padding o bordes.

¿Cómo retirar el espacio adicional debajo de los elementos inline?

Los elementos inline (como <img>) tienen un pequeño espacio debajo causado por la alineación de la línea base del line-height. Corrígelo poniendo display: block en el elemento, o vertical-align: bottom, o font-size: 0 en el padre.

Lo que el modelo de caja CSS realmente define

El modelo de caja CSS es la representación rectangular de cada elemento en una página web. Cada elemento tiene cuatro cajas concéntricas: la caja de contenido (donde viven texto, imágenes, elementos hijos), la caja de padding (espacio entre el contenido y el borde, dentro del límite visible), la caja del borde (el contorno visible dibujado alrededor del padding) y la caja de margen (espacio transparente fuera del borde que separa este elemento de sus vecinos). El tamaño visible total de un elemento es contenido + padding + borde; el margen es invisible pero empuja a otros elementos.

El concepto crítico es box-sizing. Por defecto (box-sizing: content-box, el valor de la especificación CSS 1), las propiedades width y height se aplican solo a la caja de contenido. Si estableces width: 200px; padding: 20px; border: 2px solid, el ancho renderizado total es 200 + 40 + 4 = 244 píxeles. Esto es contraintuitivo: un elemento «de 200px de ancho» en realidad ocupa 244 píxeles de espacio horizontal. La alternativa box-sizing: border-box (agregada en CSS 3) invierte esto: la propiedad width es el tamaño visible total incluyendo padding y borde, así que el área de contenido se reduce para encajar. border-box es lo que la mayoría de los desarrolladores esperan; se convirtió en el estándar de facto a través del reset CSS «* { box-sizing: border-box }» de Paul Irish de 2012.

Entender el modelo de caja importa porque los errores de diseño casi siempre rastrean a la confusión sobre qué valor se aplica a qué caja. «¿Por qué mi elemento es más ancho de lo que establecí?» es sorpresa de content-box. «¿Por qué mi margen no empuja a los hermanos hacia abajo?» suele ser colapso de márgenes. «¿Por qué padding-top: 50% se comporta extraño?» es porque el padding porcentual se calcula relativo al ancho del padre, no a la altura. Cada desarrollador CSS encuentra estas confusiones; este visualizador las hace concretas dejándote ajustar valores y ver la geometría de caja resultante en tiempo real.

Cómo funciona esta herramienta tras bambalinas

El diagrama interactivo es una serie de divs coloreados anidados correspondientes a cada caja (margen en naranja, borde en amarillo, padding en verde, contenido en azul). A medida que cambias los valores de entrada, JavaScript actualiza los atributos style en línea de los divs del diagrama para que reflejen los valores numérica y visualmente. Las proporciones se escalan para encajar en el área de vista previa; los valores de píxeles absolutos empujarían el diagrama fuera de la pantalla para entradas típicas.

El cálculo del tamaño total depende del modo box-sizing. Para content-box: ancho total = ancho del contenido + padding-left + padding-right + border-left + border-right. Para border-box: ancho total = el valor de width (padding y borde se restan del área de contenido). La herramienta calcula ambos modos simultáneamente cuando alternas box-sizing, así puedes comparar directamente.

La salida CSS generada usa tus entradas como valores de propiedad: box-sizing: border-box; width: 200px; padding: 10px 20px; border: 2px solid; margin: 1rem auto;. Copia esto directamente en tu hoja de estilos y aplica la clase correspondiente. Nada sale de tu navegador; todo se ejecuta localmente en JavaScript. Sin analíticas, sin backend, sin cuenta. Refresca y el estado se va.

Breve historia del modelo de caja CSS

Flujos del mundo real

Trampas comunes y lo que significan

Privacidad: todo se ejecuta en tu navegador

Las herramientas de aprendizaje y visualización CSS vienen en dos sabores: páginas HTML simples ejecutando JavaScript del lado del cliente (privadas, rápidas, sin configuración) y editores en la nube con proyectos guardados (colaborativos pero con compensaciones de privacidad). Esta herramienta es del primer tipo. Tus valores ingresados, tu estado de toggle box-sizing, tu CSS generado: todo permanece en tu sesión del navegador. Refresca la página y el estado se va a menos que hayas copiado el CSS primero.

Los riesgos de privacidad son bajos aquí porque los valores del modelo de caja raramente contienen información sensible. Aun así, la falta de analíticas importa: puedes experimentar libremente sin que tu proceso de prueba y error sea registrado. Particularmente útil en entornos de aula o capacitación corporativa donde hacer que los estudiantes o aprendices registren cuentas en plataformas de terceros es un punto de fricción. Esta es una sola página estática sin backend, utilizable en cualquier navegador, incluidas máquinas empresariales bloqueadas.

Cuándo otra herramienta es la opción correcta

Más preguntas frecuentes

¿Debo usar universal * { box-sizing: border-box }?

Para la mayoría de los proyectos, sí. La propuesta de Paul Irish de 2012 ahora es el predeterminado de la industria y se alinea con cómo la mayoría de los desarrolladores esperan que width y height funcionen. Frameworks como Bootstrap, Tailwind, Bulma y Material UI vienen con border-box como predeterminado. Los proyectos modernos comenzando en 2026 deberían establecer *, *::before, *::after { box-sizing: border-box; } en la parte superior de su reset, y raramente necesitar pensar en box-sizing de nuevo. Las anulaciones específicas a content-box son posibles para elementos individuales donde border-box estropearía las cosas.

¿Por qué mi margen empuja al padre hacia abajo en lugar de empujar a los hermanos?

Esto es colapso de márgenes. Cuando el margen superior de un hijo se encuentra con el borde superior del padre sin padding/borde entre ellos, el margen del hijo «escapa» y se aplica al padre en su lugar. Arreglos: agregar padding-top: 1px al padre (cualquier valor funciona), agregar border: 1px solid transparent, establecer el padre como contenedor flex o grid (el colapso se suprime en esos modos), o usar display: flow-root en el padre (una regla moderna explícita «establecer un nuevo contexto de formato de bloque»). Todos estos bloquean el margen de colapsar a través.

¿Cuál es la diferencia entre margin: auto y margin: 0?

margin: 0 significa sin margen; el elemento se encuentra al ras con sus vecinos. margin: auto significa que el navegador calcula el margen para distribuir el espacio horizontal restante, típicamente usado para centrar un elemento de bloque: margin-left: auto; margin-right: auto; divide igualmente el espacio restante. margin: auto auto auto auto (o abreviatura margin: auto) centra tanto horizontal como verticalmente dentro de un contenedor flex. Fuera de flex/grid, solo funcionan los márgenes auto horizontales.

¿En qué difiere outline de border?

Outline dibuja alrededor de un elemento pero está fuera del modelo de caja: no agrega al tamaño del elemento ni empuja a los vecinos. Border es parte del modelo de caja y agrega al tamaño renderizado. Outline se usa típicamente para anillos de foco (contornos :focus-visible) donde quieres un indicador visible sin desplazar el diseño. Border se usa cuando la línea debería ser parte de la estructura del elemento. No elimines outline: none sin proporcionar un indicador de foco alternativo; hacerlo rompe la accesibilidad de teclado.

¿Por qué usar propiedades lógicas como margin-inline-start?

Las propiedades lógicas (margin-block-start, padding-inline, etc.) se adaptan a la dirección de escritura del documento. En inglés (de izquierda a derecha), margin-inline-start es lo mismo que margin-left. En árabe o hebreo (de derecha a izquierda), se convierte en margin-right automáticamente. Para sitios que soportan múltiples idiomas, las propiedades lógicas hacen la internacionalización CSS automática. Para sitios solo en inglés, son equivalentes en efecto pero señalan la intención más claramente: «este margen está al inicio del flujo de texto» en lugar de «este margen está en el lado izquierdo».

¿Cómo creo una caja de proporción de aspecto fija?

La forma moderna es la propiedad CSS aspect-ratio: aspect-ratio: 16/9 en un div hace que su altura sea automáticamente 9/16 de su ancho. Soportado en todos los navegadores modernos (2021+). La técnica heredada usa padding-top como porcentaje: un div con padding-top: 56.25% crea una proporción 16:9 (9/16 = 56.25%). El truco padding-top sigue funcionando pero la sintaxis de propiedad es más limpia. Usa aspect-ratio para código nuevo; el hack heredado permanece en Tailwind y otras herramientas que necesitan soporte amplio del navegador.

Herramientas relacionadas

Generador CSS multicolumna Generador de rejilla CSS Generador CSS Flexbox Generador CSS Border Radius