O que é o colapso de bordas em CSS?
sobes.tech IA
Resposta da IA
O colapso de margens (margin collapsing) é um fenómeno em CSS onde as margens verticais de blocos adjacentes se fundem numa só. O tamanho desta margem combinada é determinado como o valor máximo das margens que colapsam.
O colapso ocorre nos seguintes casos:
-
Entre elementos adjacentes: As margens verticais de dois elementos vizinhos colapsam.
<p>Parágrafo 1</p> <p>Parágrafo 2</p>Se
<p>tivermargin-bottomemargin-toprespetivamente, estas margens podem colapsar. -
Entre um elemento pai e o seu primeiro/último filho: Se o pai não tiver
border,padding,display: flex,display: grid,overflow: hiddenou outras propriedades que criam um contexto de formatação, a sua margem superior pode colapsar com omargin-topdo primeiro filho. De forma semelhante, a margem inferior do pai pode colapsar com omargin-bottomdo último filho.<div class="parent"> <p class="child">Elemento filho</p> </div> -
Em um elemento vazio: Se um elemento não tiver conteúdo (
height: 0, sembordernempadding), as suas margens superior e inferior podem colapsar entre si.<div class="empty"></div>
Tabela que ilustra os resultados do colapso:
| Margem 1 | Margem 2 | Resultado do colapso |
|---|---|---|
| 10px | 15px | 15px |
| 20px | -5px | 20px |
| -10px | -15px | -10px |
O colapso de margens ocorre apenas na direção vertical (margin-top e margin-bottom). As margens horizontais (margin-left e margin-right) nunca colapsam.
Existem formas de prevenir o colapso, como adicionar border, padding, usar display: flex, display: grid, overflow: hidden ou criar um novo contexto de formatação do bloco com display: flow-root.