Modelo de Caixa no CSS: Conceitos, Propriedades e Aplicações

O Modelo de Caixa (ou Box Model) é um dos conceitos fundamentais do CSS, pois descreve como cada elementoTags e Elementos: Sintaxe e HierarquiaTags e Elementos: Sintaxe e HierarquiaDescubra os fundamentos do HTML: aprenda sobre tags, elementos, hierarquia e boas práticas para criar páginas bem estruturadas e acessíveis. em uma página web é representado como uma caixa retangular. Essa caixa é composta por quatro camadas principais, listadas de dentro para fora:

1. Conteúdo (content)

2. PreenchimentoSeletores e Propriedades CSS EssenciaisSeletores e Propriedades CSS EssenciaisAprenda a dominar o CSS com nosso tutorial completo: entenda seletores, propriedades essenciais e técnicas para criar layouts modernos e atrativos. (padding)

3. BordaSeletores e Propriedades CSS EssenciaisSeletores e Propriedades CSS EssenciaisAprenda a dominar o CSS com nosso tutorial completo: entenda seletores, propriedades essenciais e técnicas para criar layouts modernos e atrativos. (border)

4. MargemSeletores e Propriedades CSS EssenciaisSeletores e Propriedades CSS EssenciaisAprenda a dominar o CSS com nosso tutorial completo: entenda seletores, propriedades essenciais e técnicas para criar layouts modernos e atrativos. (margin)

A forma como essas camadas se comportam e a forma como o CSS calcula o tamanho total de cada elemento podem mudar de acordo com a propriedadeClasses e Herança em ES6+Classes e Herança em ES6+Aprenda a dominar classes e herança em ES6+: escreva códigos JavaScript claros e eficientes com métodos, getters e setters. box-sizing. A seguir, veremos cada parte em detalhes.

Margins (Margens)🔗

As margensSeletores e Propriedades CSS EssenciaisSeletores e Propriedades CSS EssenciaisAprenda a dominar o CSS com nosso tutorial completo: entenda seletores, propriedades essenciais e técnicas para criar layouts modernos e atrativos. controlam o espaço vazio ao redor de um elemento. É o que “afasta” o elementoTags e Elementos: Sintaxe e HierarquiaTags e Elementos: Sintaxe e HierarquiaDescubra os fundamentos do HTML: aprenda sobre tags, elementos, hierarquia e boas práticas para criar páginas bem estruturadas e acessíveis. de seus vizinhos. Podem ser definidas para cada lado separadamente, por exemplo:

.elemento {
  margin-top: 10px;
  margin-right: 20px;
  margin-bottom: 10px;
  margin-left: 20px;
}

Ou com a propriedadeClasses e Herança em ES6+Classes e Herança em ES6+Aprenda a dominar classes e herança em ES6+: escreva códigos JavaScript claros e eficientes com métodos, getters e setters. resumida (margin), indicando o valor em sentido horário (top, right, bottom, left):

.elemento {
  margin: 10px 20px 10px 20px;
}
Dica: Para centralizar um elemento em display block horizontalmente, você pode usar margin: 0 auto; (desde que haja um valor de largura definido).

Padding (Preenchimento)🔗

O preenchimentoSeletores e Propriedades CSS EssenciaisSeletores e Propriedades CSS EssenciaisAprenda a dominar o CSS com nosso tutorial completo: entenda seletores, propriedades essenciais e técnicas para criar layouts modernos e atrativos. (padding) é o espaço entre o conteúdo do elementoTags e Elementos: Sintaxe e HierarquiaTags e Elementos: Sintaxe e HierarquiaDescubra os fundamentos do HTML: aprenda sobre tags, elementos, hierarquia e boas práticas para criar páginas bem estruturadas e acessíveis. e a sua borda. Diferente de margin, que atua para fora, o padding age para dentro. Assim como as margensSeletores e Propriedades CSS EssenciaisSeletores e Propriedades CSS EssenciaisAprenda a dominar o CSS com nosso tutorial completo: entenda seletores, propriedades essenciais e técnicas para criar layouts modernos e atrativos., podemos manipular cada lado individualmente ou usar a forma resumida:

.elemento {
  padding-top: 10px;
  padding-right: 20px;
  padding-bottom: 10px;
  padding-left: 20px;
}

Ou a forma abreviada:

.elemento {
  padding: 10px 20px 10px 20px;
}

Border (Borda)🔗

As bordas ficam imediatamente após o preenchimentoSeletores e Propriedades CSS EssenciaisSeletores e Propriedades CSS EssenciaisAprenda a dominar o CSS com nosso tutorial completo: entenda seletores, propriedades essenciais e técnicas para criar layouts modernos e atrativos. (padding). Podemos definir cor, espessura e estilo (por exemplo, solid, dashed, dotted). Eis um exemplo básico:

.elemento {
  border: 2px solid #333;
}

Se desejado, pode-se configurar separadamente cada atributo:

.elemento {
  border-width: 2px;
  border-style: solid;
  border-color: #333;
}

box-sizing🔗

A propriedadeClasses e Herança em ES6+Classes e Herança em ES6+Aprenda a dominar classes e herança em ES6+: escreva códigos JavaScript claros e eficientes com métodos, getters e setters. box-sizing determina como o navegador irá calcular a larguraSeletores e Propriedades CSS EssenciaisSeletores e Propriedades CSS EssenciaisAprenda a dominar o CSS com nosso tutorial completo: entenda seletores, propriedades essenciais e técnicas para criar layouts modernos e atrativos. (width) e a alturaSeletores e Propriedades CSS EssenciaisSeletores e Propriedades CSS EssenciaisAprenda a dominar o CSS com nosso tutorial completo: entenda seletores, propriedades essenciais e técnicas para criar layouts modernos e atrativos. (height) de um elementoTags e Elementos: Sintaxe e HierarquiaTags e Elementos: Sintaxe e HierarquiaDescubra os fundamentos do HTML: aprenda sobre tags, elementos, hierarquia e boas práticas para criar páginas bem estruturadas e acessíveis.:

  • content-box (valor padrão)

O cálculo de tamanho considera apenas a área de conteúdo. Assim, width e height não incluem border nem padding.

  • border-box

O cálculo de width e height inclui border e padding. Na prática, isso simplifica a definição de layouts, pois a borda e o preenchimentoSeletores e Propriedades CSS EssenciaisSeletores e Propriedades CSS EssenciaisAprenda a dominar o CSS com nosso tutorial completo: entenda seletores, propriedades essenciais e técnicas para criar layouts modernos e atrativos. não aumentam o tamanho total do elemento.

Exemplo comparativo:

/* content-box (padrão) */
.elemento-padrao {
  box-sizing: content-box;
  width: 200px; /* Tamanho sem incluir borda e padding */
  padding: 10px;
  border: 2px solid #000;
}
/* border-box */
.elemento-border-box {
  box-sizing: border-box;
  width: 200px; /* Tamanho total incluindo borda e padding */
  padding: 10px;
  border: 2px solid #000;
}

Quadro Resumo🔗

A tabelaCriando Tabelas: `<table>`, `<tr>`, `<td>`, `<th>`Criando Tabelas: `<table>`, `<tr>`, `<td>`, `<th>`Descubra como montar tabelas HTML com tags básicas. Este tutorial prático ensina o uso de <table> <tr> <td> e <th> para organizar dados de forma eficiente. abaixo mostra cada parte do Box Model e suas principais características:

PropriedadeDescriçãoAtua para dentro ou para fora?Inclui no tamanho total do elemento?
marginEspaço em volta do elemento (fora da borda).Para foraNão
borderDelimitação visual do elemento (espessura, cor, estilo).Nem para dentro nem para foraSim (para border-box), não (para content-box)
paddingEspaço interno entre o conteúdo e a borda.Para dentroSim (para border-box), não (para content-box)
box-sizingDefine se border e padding serão incluídos ou não no cálculo de width/height--

Exemplo de Uso Prático🔗

Imagine que você precise criar uma caixa de texto que sempre tenha 300px de largura, incluindo sua borda e preenchimentoSeletores e Propriedades CSS EssenciaisSeletores e Propriedades CSS EssenciaisAprenda a dominar o CSS com nosso tutorial completo: entenda seletores, propriedades essenciais e técnicas para criar layouts modernos e atrativos.. Veja como poderíamos fazer isso com box-sizing: border-box;:

.caixa-texto {
  box-sizing: border-box;
  width: 300px;
  border: 2px solid #666;
  padding: 10px;
  margin: 20px auto;
  display: block;
}

Dessa forma, mesmo adicionando bordaSeletores e Propriedades CSS EssenciaisSeletores e Propriedades CSS EssenciaisAprenda a dominar o CSS com nosso tutorial completo: entenda seletores, propriedades essenciais e técnicas para criar layouts modernos e atrativos. e padding, a caixa não ultrapassa os 300px definidos.

Conclusão🔗

Compreender o Modelo de Caixa é essencial para trabalhar de forma eficaz com layouts. Saber quando usar content-box ou border-box (e como os valores de margin, padding e border influenciam o espaço ao redor) é a base para criar páginas consistentes e organizadas. Use essas propriedades para controlar, de maneira precisa, o posicionamentoPosicionamento: static, relative, absolute, fixed, stickyPosicionamento: static, relative, absolute, fixed, stickyDescubra como usar os métodos de posicionamento CSS, de static a sticky, para criar layouts interativos, precisos e eficazes. e estética dos seus elementos no navegador.

Autor: Marcelo V. Souza - Engenheiro de Sistemas e Entusiasta em IoT e Desenvolvimento de Software, com foco em inovação tecnológica.

Referências🔗

Compartilhar artigo

Artigos Relacionados