Middle
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 dois ou mais blocos adjacentes se unem numa única margem. O tamanho desta margem comum é determinado pelo valor mais alto das margens que colapsam.
Regras principais do colapso:
- Apenas as margens verticais (
margin-topemargin-bottom) colapsam. As margens horizontais não. - Apenas as margens de elementos adjacentes colapsam se não houver outros elementos, preenchimento (
padding), borda (border) ou conteúdo de bloco entre eles. - A margem superior do primeiro elemento filho colapsará com a margem superior do seu pai se não houver
padding,borderou outro conteúdo entre eles. - A margem inferior do último elemento filho colapsará com a margem inferior do seu pai se não houver
padding,borderou outro conteúdo entre eles. - As margens superior e inferior de um elemento vazio podem colapsar-se entre si se o elemento não tiver
padding,borderou conteúdo. - Se uma das margens que colapsam for negativa, o tamanho final será a soma dos valores positivos e negativos (ou o valor absoluto se ambos forem negativos e a soma for menor que zero).
Exemplo:
<div class="box1">Elemento 1</div>
<div class="box2">Elemento 2</div>
.box1 {
margin-bottom: 20px;
}
.box2 {
margin-top: 30px;
}
Neste caso, a distância vertical entre box1 e box2 será de 30px (o valor máximo entre 20px e 30px), não 50px.
Formas de evitar o colapso:
- Adicionar
paddingouborderentre os elementos. - Criar um novo bloco de formatação (por exemplo, usando
overflow: hidden,display: flow-rootou elementos flutuantes). - Usar
display: inline-block,display: flexoudisplay: gridpara os elementos. - Usar posicionamento absoluto.