Skip to content

Exemplos: Box Model

← Voltar para a aula

1. Anatomia da caixa

Cada elemento HTML é uma caixa com quatro camadas. Observe as cores abaixo:

marginborderpaddingcontent
Sou o conteúdo!

2. content-box × border-box

Ambas as caixas têm width: 200px, padding: 20px e border: 6px. Veja como o tamanho final difere:

content-box (padrão)
width: 200px
padding: 20px (cada lado)
border: 6px (cada lado)
─────────────────────
Largura total: 252px
200 + 40 + 12 = 252
border-box
width: 200px
padding: 20px (já incluído)
border: 6px (já incluído)
─────────────────────
Largura total: 200px
width inclui tudo!

Por que usar border-box?

Se você define width: 50% em dois elementos que dividem uma linha, com content-box eles vão ultrapassar os 100% assim que você adicionar qualquer padding ou border. Com border-box os 50% sempre serão respeitados.

3. Colapso de margens (margin collapse)

Quando duas margens verticais se encontram, o CSS utiliza a maior delas, não a soma. O espaço entre os blocos abaixo é 30px (não 50px).

Bloco A: margin-bottom: 30px
Bloco B: margin-top: 20px

TIP

Colapso acontece apenas em margens verticais entre elementos de block. Não ocorre com elementos flex/grid, nem em elementos com padding, border ou overflow diferente de visible.

4. Shorthand de padding e margin

O shorthand segue a ordem topo → direita → baixo → esquerda (sentido horário). Valores omitidos espelham o oposto.

padding: 32px
1 valor: todos os lados
padding: 32px 8px
2 valores: vertical | horizontal
padding: 32px 8px 4px
3 valores: top | horiz | bottom
padding: 32px 8px 4px 24px
4 valores: ↑ → ↓ ←

5. Controle interativo de padding

Ajuste o slider para ver como o padding afeta o tamanho da caixa em tempo real. A caixa abaixo usa box-sizing: border-box, então sua largura total permanece fixa em 280px: é o espaço de conteúdo interno que muda.

Largura no layout: 280px (border-box mantém o total fixo)
Se fosse content-box: 280 + 2×20 = 320px