MÓDULO 1: ESTILOS BÁSICOS

Márgenes y Padding

Márgenes y padding son tus mejores amigos para crear espacios en tu diseño. Aunque parecen similares, tienen diferencias cruciales. Dominarlos te hará un diseñador web mucho mejor.


1. Diferencia Entre Margin y Padding

Esta es la diferencia más importante que debes entender:

🎁 Padding (Relleno)

Dentro del elemento. Crea espacio entre el contenido y el borde.

  • ✅ Respeta el color de fondo.
  • ✅ Respeta el borde.
  • ✅ Aumenta el tamaño visual del elemento.

💨 Margin (Margen)

Fuera del elemento. Crea distancia entre elementos.

  • ✅ Es transparente (no respeta fondo).
  • ✅ No afecta el borde.
  • ✅ Crea separación entre elementos.
/* Ejemplo visual */
div {
  background-color: lightblue;
  padding: 20px; /* Espacio DENTRO (azul claro) */
  margin: 20px; /* Espacio FUERA (transparente) */
}

2. Sintaxis de Padding

Hay varias formas de especificar padding. Elige la que prefieras.

/* Un valor: todos los lados */
div {
  padding: 20px;
  /* arriba: 20px, derecha: 20px, abajo: 20px, izquierda: 20px */
}

/* Dos valores: vertical, horizontal */
div {
  padding: 10px 20px;
  /* arriba/abajo: 10px, izquierda/derecha: 20px */
}

/* Tres valores: arriba, horizontal, abajo */
div {
  padding: 10px 20px 15px;
  /* arriba: 10px, izquierda/derecha: 20px, abajo: 15px */
}

/* Cuatro valores: arriba, derecha, abajo, izquierda (clockwise) */
div {
  padding: 10px 20px 15px 5px;
}

/* Especificar cada lado */
div {
  padding-top: 10px;
  padding-right: 20px;
  padding-bottom: 15px;
  padding-left: 5px;
}

3. Sintaxis de Margin

Margin usa exactamente la misma sintaxis que padding.

/* Un valor: todos los lados */
div {
  margin: 20px;
}

/* Dos valores: vertical, horizontal */
div {
  margin: 10px 20px;
}

/* Tres valores: arriba, horizontal, abajo */
div {
  margin: 10px 20px 15px;
}

/* Cuatro valores: arriba, derecha, abajo, izquierda */
div {
  margin: 10px 20px 15px 5px;
}

/* Especificar cada lado */
div {
  margin-top: 10px;
  margin-right: 20px;
  margin-bottom: 15px;
  margin-left: 5px;
}

4. Casos de Uso Comunes

Aquí hay patrones que usarás constantemente:

🎯 Centrar Horizontalmente

div {
  width: 300px;
  margin: 0 auto; /* 0 arriba/abajo, auto izquierda/derecha */
}

📦 Botón con Espacio Interior

button {
  padding: 10px 20px; /* Espacio dentro del botón */
  margin: 5px; /* Distancia entre botones */
}

📝 Párrafo con Espaciado

p {
  padding: 15px; /* Espacio dentro del párrafo */
  margin-bottom: 20px; /* Distancia con el siguiente elemento */
}

🎨 Tarjeta con Bordes

.card {
  padding: 20px; /* Espacio dentro */
  margin: 10px; /* Distancia entre tarjetas */
  border: 1px solid #ccc;
  border-radius: 8px;
}

5. Margin Collapse (Colapso de Márgenes)

Cuando dos márgenes se tocan verticalmente, se fusionan en el mayor de los dos.

div {
  margin-bottom: 20px;
}

p {
  margin-top: 30px;
}

/* El espacio entre div y p es 30px, NO 50px */
/* Se colapsa al valor mayor */

¡Importante! El colapso de márgenes solo ocurre:

  • ✅ Entre elementos hermanos (verticalmente).
  • ✅ Entre padre e hijo (si el padre no tiene padding/border).
  • ❌ NO ocurre con padding.
  • ❌ NO ocurre horizontalmente.

6. Reset de Márgenes y Padding

Los navegadores aplican márgenes y padding por defecto. A menudo los reseteas.

/* Reset global */
* {
  margin: 0;
  padding: 0;
}

/* O más específico */
body, h1, h2, p, ul {
  margin: 0;
  padding: 0;
}

7. Unidades Comunes

Puedes usar diferentes unidades para márgenes y padding:

div {
  padding: 20px; /* Píxeles (fijo) */
  margin: 2em; /* Em (relativo al tamaño de fuente) */
}

div {
  padding: 5%; /* Porcentaje (relativo al padre) */
  margin: 1rem; /* Rem (relativo a la raíz) */
}

Unidades recomendadas:

  • px: Para valores fijos y pequeños.
  • em: Para valores relativos al elemento.
  • rem: Para valores relativos a la raíz (mejor para responsive).
  • %: Para valores relativos al padre.

🛠️ Tu Misión

  1. Crea tres <div> con color de fondo y aplica padding: 20px a cada uno. Observa cómo el espacio está DENTRO.
  2. Añade margin: 15px a los mismos divs. Observa cómo crea distancia ENTRE ellos.
  3. Crea un div con width: 200px y margin: 0 auto para centrarlo horizontalmente.
  4. Crea un botón con padding: 10px 20px (vertical, horizontal).
  5. Crea una tarjeta con padding: 20px, margin: 10px, border: 1px solid #ccc, y border-radius: 8px.
  6. Crea dos párrafos y usa margin-bottom: 20px en el primero. Observa el colapso de márgenes.
  7. Bonus: Crea una página con múltiples elementos y resetea todos los márgenes y padding con * { margin: 0; padding: 0; }.