Estou tentando entender como o recolhimento de margem se comporta quando um Contexto de Formatação de Bloco (BFC) é introduzido usando overflow: hidden
.
Aqui está um exemplo mínimo reproduzível:
.outer {
background: lightblue;
}
.inner {
background: lightgreen;
overflow: hidden; /* Triggers BFC */
margin: 30px;
}
p {
margin-top: 30px;
}
<body>
<div class="outer">
<div class="inner">
<p>Paragraph inside a BFC.</p>
</div>
</div>
</body>
Pelo que entendi, a configuração overflow: hidden
deve .inner
criar um Contexto de Formatação de Bloco, o que evita o colapso de margem entre .inner
e seu pai .outer
.
No entanto, quando inspeciono o layout no Chrome DevTools, parece que a margem superior .inner
ainda está se recolhendo para cima , fazendo com que pareça .outer
ter uma margem superior — mesmo que não tenha.
Pergunta:
Por que o colapso de margem ainda ocorre aqui, mesmo que .inner
devesse ser um BFC? Há algo que eu não esteja entendendo?