Colapso de márgenes

En el flujo normal, los márgenes verticales de bloques contiguos no se suman: se fusionan y queda solo el mayor. Es uno de los comportamientos que más sorprende al maquetar.
  • Entre hermanos: un margin-bottom de 2rem seguido de un margin-top de 1rem deja 2rem, no 3rem.
  • Entre padre e hijo: el margin-top del primer hijo puede salir por fuera del padre si este no tiene borde, padding ni contenido antes.
  • Solo ocurre con márgenes verticales y en el flujo de bloque: en flex y grid los márgenes nunca colapsan.
  • display: flow-root crea un nuevo contexto de formato de bloque y evita que los márgenes de los hijos salgan del padre.

Ejemplo

Los dos hijos tienen margin: 1.5rem 0. Con block los márgenes se fusionan y la separación entre ellos es de 1.5rem; con flex o grid se suman y la separación se duplica.

Selecciona display:
ResultadoEn vivo
html
css