Colapso da margem CSS


Índice

    Mostrar índice


Às vezes, duas margens se transformam em uma única margem.


Colapso de margem

As margens superior e inferior dos elementos às vezes são recolhidas em um único margem que é igual à maior das duas margens.

Isso não acontece nas margens esquerda e direita! Somente margens superior e inferior!

Veja o exemplo a seguir:

Exemplo

Demonstração do colapso da margem:

h1 {
  margin: 0 0 50px 0;
}
h2 {
  margin: 20px 0 0 0;
}

Experimente você mesmo →

<!DOCTYPE html>
<html>
<head>
<style>
h1 {
  margin: 0 0 50px 0;
}

h2 {
  margin: 20px 0 0 0;
}
</style>
</head>
<body>

<p>In this example the h1 element has a bottom margin of 50px and the h2 element has a top margin of 20px. So, the vertical margin between h1 and h2 should have been 70px (50px + 20px). However, due to margin collapse, the actual margin ends up being 50px.</p>

<h1>Heading 1</h1>
<h2>Heading 2</h2>

</body>
</html>


No exemplo acima, o elemento <h1> tem uma margem inferior de 50px e o <h2> elemento tem uma margem superior definida como 20px.

O bom senso parece sugerir que a margem vertical entre o <h1> e o <h2> seria um total de 70px (50px + 20px). Mas devido ao colapso das margens, a margem real acaba sendo 50px.



Todas as propriedades de margem CSS

margin

Uma propriedade abreviada para definir todas as propriedades de margem em uma declaração

margin-bottom

Define a margem inferior de um elemento

margin-left

Define a margem esquerda de um elemento

margin-right

Define a margem direita de um elemento

margin-top

Define a margem superior de um elemento