Maquetar con CSS Box Model

Todo lo que hay que saber sobre el modelo caja (Box Model) y como estilizar cada parte con CSS.

css-box-model

Al diseñar la estructura de una página web, el motor de renderizado del navegador interpreta cada componente como un bloque rectangular, siguiendo las normas del modelo de caja de CSS (CSS Box Model en inglés). Con CSS, se puede definir la ubicación, las dimensiones y las características de estos bloques, como el color, el fondo y el grosor del borde, entre otros.

El modelo de caja es esencial para comprender cómo se distribuyen los elementos en una página y cómo interactúan entre sí. Cada elemento HTML representado visualmente en la web es una caja compuesta por diferentes áreas.

Estructura del Modelo de Caja

Cada caja en CSS se divide en cuatro partes o áreas básicas que debes conocer para poder maquetar correctamente los elementos HTML y conseguir el efecto visual deseado:

1. Margin (Margen)

El margen es el espacio exterior que rodea la caja. Se utiliza para separar un elemento de otros elementos adyacentes en la página. No tiene color de fondo y su tamaño puede ser positivo o incluso negativo.

.elemento {
margin: 20px; /* Aplica un margen de 20px en los cuatro lados */
}

Outline & Box Shadow

Propiedades como outline o box-shadow ocupan el mismo espacio que el margen sin afectar al tamaño de la caja.

  • outline: Similar al borde, pero no afecta el tamaño del elemento ni influye en el box model.
  • box-shadow: Permite agregar sombras al contenedor sin modificar su estructura.
.elemento {
outline: 2px dashed red; /* Contorno rojo de línea discontinua */
box-shadow: 5px 5px 10px rgba(0, 0, 0, 0.5); /* Sombra negra */
}

2. Border (Borde)

El borde es la línea que rodea el contenido y el relleno (padding). Puede tener distintos colores, estilos y grosores.

.elemento {
border: 2px solid black; /* Borde negro de 2 píxeles */
}

3. Padding (Relleno)

El relleno es el espacio interno entre el contenido del elemento y su borde. A diferencia del margen, el padding sí afecta el tamaño total del elemento si no se usa la propiedad box-sizing: border-box.

.elemento {
padding: 10px; /* Espacio interno de 10px en cada lado */
}

4. Contenido

El contenido es el área donde se muestra el texto, imagen u otro elemento dentro de la caja. Su tamaño dependerá de los valores definidos en width y height.

.elemento {
width: 200px;
height: 100px;
}

Ejemplo Completo

Aquí tienes un ejemplo práctico de cómo se aplica el modelo de caja en HTML y CSS:

Conclusión

El Modelo de Caja de CSS es un concepto indispensable para entender el diseño web en HTML y CSS, ya que define cómo se organizan y espaciamos los elementos en la página. Comprender sus partes (margen, borde, relleno y contenido) es básico para lograr una estructura coherente y visualmente atractiva. ¡Dominarlo te ayudará a mejorar la maquetación y el diseño de tus proyectos web!