Pular para o conteúdo
Cursos

DevClub

LógicaFront-endBack-endMobile

IA Club

IA na prática
Estudar programaçãoEstudar IA

Aula 3 de 6

Entenda o box model e controle o tamanho dos elementos

Visualize conteúdo, padding, borda e margem para calcular dimensões e evitar caixas maiores do que o espaço disponível na página.

36 minutos · leitura + prática · nível iniciante

Ao terminar esta aula, você vai conseguir

  • Identificar as quatro áreas do box model
  • Calcular o tamanho ocupado por uma caixa no modelo padrão
  • Usar box-sizing para tornar dimensões mais previsíveis

Todo elemento renderizado participa do box model, o modelo de caixa do CSS. Entender esse modelo permite responder a uma pergunta comum: por que um card com width: 300px ficou maior do que 300 pixels? Nesta aula, você vai visualizar as camadas, fazer a conta e testar uma configuração mais previsível.

Imagine uma encomenda. O produto é o conteúdo; o plástico de proteção cria um espaço interno; a caixa de papelão forma a borda; e a distância entre essa caixa e as demais encomendas funciona como margem. No CSS, os nomes corretos são content, padding, border e margin. A comparação ajuda a localizar as camadas, mas tem um limite: o navegador calcula cada dimensão segundo regras do layout, e margens verticais podem até colapsar em situações específicas.

Leia a caixa de dentro para fora

Considere esta regra:

css
.cartao {
  width: 300px;
  padding: 20px;
  border: 4px solid #2563eb;
  margin: 16px;
}

No valor inicial de box-sizing, chamado content-box, width controla somente a área de conteúdo. A largura da borda externa será 300 + 20 + 20 + 4 + 4, ou 348 pixels. A margem não faz parte da caixa visível, mas reserva mais 16 pixels de cada lado no layout. Portanto, o espaço horizontal necessário pode chegar a 380 pixels.

Esse cálculo explica o comportamento técnico: padding adiciona espaço entre conteúdo e borda; border desenha o limite; margin separa o elemento de seus vizinhos. Não use margem para “aumentar o interior” nem padding para afastar duas caixas. Cada camada responde a uma relação diferente.

Faça width incluir padding e borda

Com border-box, a largura declarada inclui conteúdo, padding e borda:

css
*,
*::before,
*::after {
  box-sizing: border-box;
}

.cartao {
  width: 300px;
  padding: 20px;
  border: 4px solid #2563eb;
}

Agora a borda externa ocupa 300 pixels. O navegador reduz a área de conteúdo para acomodar padding e borda dentro desse total. Esse padrão costuma tornar componentes mais previsíveis, principalmente quando width: 100% encontra espaçamento interno. Ele não elimina a necessidade de entender as camadas nem inclui a margem no valor.

Investigue em vez de estimar

As ferramentas de desenvolvimento do navegador mostram um diagrama do box model. Inspecione um elemento e procure a seção de layout ou computed. Você verá valores de conteúdo, padding, borda e margem. Essa leitura é mais confiável do que ajustar números até a página “parecer certa”.

No laboratório, a caixa começa com content-box. A saída abaixo do botão deve mostrar 324 pixels: 260 de conteúdo, 48 de padding e 16 de borda. Ao alternar para border-box, a saída deve mostrar 260 pixels. Se o resultado for outro, confira os valores calculados e o zoom do navegador.

Sua microprática é mudar o padding para 32 pixels e escrever a largura esperada antes de executar. Faça a previsão nos dois modos. Essa pequena conta conecta o conceito ao que o motor de layout realmente renderiza.

Na próxima aula, vamos usar essas camadas de propósito para criar ritmo, contornos e fundos sem empilhar números aleatórios.

Laboratório ao vivo

Raio X de uma caixa CSS

Alterne o box-sizing e acompanhe a largura calculada. Depois mude padding e borda para conferir quais partes entram no total de border-box.

Pronto para testar
Resultado

Pare e pense

No box model padrão, o que width mede?

Escolha uma resposta
Missão da aula

Faça sem copiar

Crie uma caixa de 320px que continue ocupando 320px após receber 24px de padding e 4px de borda. Confirme a largura nas ferramentas do navegador.

Fontes para consultar

Terminou a missão?

Marque apenas quando você conseguir explicar o conceito e concluir o desafio. O progresso fica salvo somente neste navegador.

Próxima: Crie ritmo com espaçamento, bordas e fundos →