O que é o Box Model?

O box model é um conceito fundamental no CSS que descreve como os elementos HTML são renderizados na página. Cada elemento é representado como uma "caixa" composta por quatro partes:

Partes do Box Model

Conteúdo (Content): É a área onde o conteúdo do elemento (texto, imagens, etc.) é exibido.

Padding (Preenchimento): Espaço entre o conteúdo e a borda do elemento.

Border (Borda): A linha que envolve o padding e o conteúdo.

Margin (Margem): Espaço fora da borda, que separa o elemento de outros elementos.

Exemplo Visual do Box Model

Conteúdo

Aqui, a caixa acima ilustra o box model. As cores representam: Conteúdo, Padding, Border, e Margin.

Como width e height se relacionam com o Box Model?

As propriedades width e height definem o tamanho do conteúdo da caixa. Por exemplo:

div {
  width: 200px;
  height: 100px;
}

Nesse caso, a área de conteúdo do div terá 200px de largura e 100px de altura.

No entanto, o tamanho total do elemento na página depende não apenas do width e height, mas também do padding, border e margin.

Exemplo Prático

Suponha que você tenha o seguinte CSS:

div {
  width: 200px;
  height: 100px;
  padding: 20px;
  border: 10px solid black;
  margin: 30px;
}

Aqui está como o box model funciona:

Box-Sizing: Controlando o Cálculo

Por padrão, o CSS usa o modelo content-box, onde o width e height se referem apenas ao conteúdo. No entanto, você pode mudar isso com a propriedade box-sizing:

                
    div {
        width: 200px;
        height: 100px;
        padding: 20px;
        border: 10px solid black;
        box-sizing: border-box;
    }
                
            

Nesse caso, o tamanho total da caixa será exatamente 200px de largura e 100px de altura, incluindo o padding e a borda.

Resumo

Experimente

Conteúdo