Visualizador de modelo de caixa CSS

Ajuste margem, borda, padding e dimensões do conteúdo e veja o modelo de caixa CSS em tempo real.

Dimensões

Padding (px)

Borda (px)

Margem (px)

margem
borda
padding
200 × 120

  

Como usar

  1. Insira os valores do modelo de caixa : defina margem, borda, padding e dimensões do conteúdo nos campos ou nos controles deslizantes interativos.
  2. Explore a visualização : o diagrama clássico de caixas aninhadas é atualizado em tempo real, margem (laranja), borda (amarelo), padding (verde) e conteúdo (azul), todos claramente rotulados.
  3. Copie o CSS : clique em Copiar o CSS para obter as propriedades completas do modelo de caixa do elemento configurado.

Por que usar o visualizador do modelo de caixa CSS ?

O modelo de caixa CSS é um dos conceitos mais fundamentais do layout web, e uma das fontes de bugs mais comuns, especialmente ao misturar valores de box-sizing, fusão de margens e dimensionamento de bordas. Este visualizador interativo torna o modelo de caixa concreto e tangível : você ajusta os valores e vê imediatamente como margem, borda e padding se empilham em torno do conteúdo. Essencial para aprender, depurar e ensinar CSS.

Funcionalidades

Perguntas frequentes

Qual a diferença entre content-box e border-box ?

Com content-box (padrão), width e height se aplicam apenas à área de conteúdo, padding e borda se somam ao tamanho total do elemento. Com border-box, width e height incluem padding e borda, tornando os tamanhos mais previsíveis. A maioria dos CSS resets modernos aplica box-sizing: border-box a todos os elementos.

O que é a fusão de margens ?

Quando duas margens verticais se tocam (entre elementos block adjacentes ou entre pai e primeiro/último filho), elas se fundem em uma única margem igual ao maior dos dois valores. Isso não ocorre com filhos flex ou grid, nem com elementos que têm padding ou bordas.

Como remover o espaço extra abaixo dos elementos inline ?

Os elementos inline (como <img>) têm um pequeno espaço abaixo deles causado pelo alinhamento da linha de base do line-height. Corrija-o colocando display: block no elemento, ou vertical-align: bottom, ou font-size: 0 no pai.

O que o modelo de caixa CSS realmente define

O modelo de caixa CSS é a representação retangular de cada elemento em uma página web. Cada elemento tem quatro caixas concêntricas: a caixa de conteúdo (onde texto, imagens, elementos filhos vivem), a caixa de padding (espaço entre o conteúdo e a borda, dentro do limite visível), a caixa da borda (o contorno visível desenhado ao redor do padding) e a caixa de margem (espaço transparente fora da borda que separa este elemento de seus vizinhos). O tamanho visível total de um elemento é conteúdo + padding + borda; a margem é invisível mas empurra outros elementos para longe.

O conceito crítico é box-sizing. Por padrão (box-sizing: content-box, o valor da especificação CSS 1), as propriedades width e height aplicam-se apenas à caixa de conteúdo. Se você definir width: 200px; padding: 20px; border: 2px solid, a largura total renderizada é 200 + 40 + 4 = 244 pixels. Isso é contraintuitivo: um elemento «de 200px de largura» na verdade ocupa 244 pixels de espaço horizontal. A alternativa box-sizing: border-box (adicionada no CSS 3) inverte isso: a propriedade width é o tamanho visível total incluindo padding e borda, então a área de conteúdo encolhe para caber. border-box é o que a maioria dos desenvolvedores esperam; tornou-se o padrão de facto via reset CSS «* { box-sizing: border-box }» de Paul Irish em 2012.

Entender o modelo de caixa importa porque bugs de layout quase sempre rastreiam à confusão sobre qual valor se aplica a qual caixa. «Por que meu elemento é mais largo do que defini?» é surpresa de content-box. «Por que minha margem não empurra os irmãos para baixo?» geralmente é colapso de margens. «Por que padding-top: 50% se comporta estranho?» é porque padding percentual é calculado relativo à largura do pai, não à altura. Cada desenvolvedor CSS encontra essas confusões; este visualizador as torna concretas deixando você ajustar valores e ver a geometria de caixa resultante em tempo real.

Como esta ferramenta funciona nos bastidores

O diagrama interativo é uma série de divs coloridos aninhados correspondentes a cada caixa (margem em laranja, borda em amarelo, padding em verde, conteúdo em azul). À medida que você altera os valores de entrada, JavaScript atualiza os atributos style em linha dos divs do diagrama para que eles reflitam os valores numérica e visualmente. As proporções são escaladas para caber na área de pré-visualização; valores de pixel absolutos empurrariam o diagrama para fora da tela para entradas típicas.

O cálculo do tamanho total depende do modo box-sizing. Para content-box: largura total = largura do conteúdo + padding-left + padding-right + border-left + border-right. Para border-box: largura total = o valor de width (padding e borda são subtraídos da área de conteúdo). A ferramenta calcula ambos os modos simultaneamente quando você alterna box-sizing, então você pode comparar diretamente.

A saída CSS gerada usa suas entradas como valores de propriedade: box-sizing: border-box; width: 200px; padding: 10px 20px; border: 2px solid; margin: 1rem auto;. Copie isso diretamente para sua folha de estilo e aplique a classe correspondente. Nada sai do seu navegador; tudo roda localmente em JavaScript. Sem analytics, sem backend, sem conta. Atualize e o estado se vai.

Breve história do modelo de caixa CSS

Fluxos do mundo real

Armadilhas comuns e o que significam

Privacidade: tudo roda em seu navegador

Ferramentas de aprendizado e visualização CSS vêm em dois sabores: páginas HTML simples rodando JavaScript do lado do cliente (privadas, rápidas, sem configuração) e editores em nuvem com projetos salvos (colaborativos mas com compromissos de privacidade). Esta ferramenta é do primeiro tipo. Seus valores inseridos, seu estado de alternância box-sizing, seu CSS gerado: tudo permanece em sua sessão do navegador. Atualize a página e o estado se vai a menos que você tenha copiado o CSS primeiro.

Os riscos de privacidade são baixos aqui porque valores do modelo de caixa raramente contêm informações sensíveis. Ainda assim, a falta de analytics importa: você pode experimentar livremente sem que seu processo de tentativa-e-erro seja registrado. Particularmente útil em ambientes de sala de aula ou treinamento corporativo onde fazer alunos ou treinandos registrarem contas em plataformas de terceiros é um ponto de atrito. Esta é uma única página estática sem backend, utilizável em qualquer navegador, incluindo máquinas empresariais bloqueadas.

Quando outra ferramenta é a escolha certa

Mais perguntas frequentes

Devo usar universal * { box-sizing: border-box }?

Para a maioria dos projetos, sim. A proposta de Paul Irish de 2012 agora é o padrão da indústria e se alinha com como a maioria dos desenvolvedores espera que width e height funcionem. Frameworks como Bootstrap, Tailwind, Bulma e Material UI vêm com border-box como padrão. Projetos modernos começando em 2026 devem definir *, *::before, *::after { box-sizing: border-box; } no topo de seu reset, e raramente precisar pensar sobre box-sizing novamente. Substituições específicas para content-box são possíveis para elementos individuais onde border-box bagunçaria as coisas.

Por que minha margem empurra o pai para baixo em vez de empurrar os irmãos?

Isso é colapso de margens. Quando a margem superior de um filho encontra a borda superior do pai sem padding/borda entre eles, a margem do filho «escapa» e aplica-se ao pai. Correções: adicionar padding-top: 1px ao pai (qualquer valor funciona), adicionar border: 1px solid transparent, definir o pai como contêiner flex ou grid (colapso é suprimido nesses modos), ou usar display: flow-root no pai (uma regra moderna explícita «estabelecer um novo contexto de formatação de bloco»). Todos esses bloqueiam a margem de colapsar através.

Qual a diferença entre margin: auto e margin: 0?

margin: 0 significa sem margem; o elemento fica encostado em seus vizinhos. margin: auto significa que o navegador calcula a margem para distribuir o espaço horizontal restante, tipicamente usado para centralizar um elemento de bloco: margin-left: auto; margin-right: auto; divide igualmente o espaço restante. margin: auto auto auto auto (ou abreviação margin: auto) centraliza tanto horizontal quanto verticalmente dentro de um contêiner flex. Fora de flex/grid, apenas margens auto horizontais funcionam.

Como outline difere de border?

Outline desenha ao redor de um elemento mas está fora do modelo de caixa: não adiciona ao tamanho do elemento e não empurra vizinhos. Border é parte do modelo de caixa e adiciona ao tamanho renderizado. Outline é tipicamente usado para anéis de foco (contornos :focus-visible) onde você quer um indicador visível sem mudar o layout. Border é usado quando a linha deve ser parte da estrutura do elemento. Não remova outline: none sem fornecer um indicador de foco alternativo; fazê-lo quebra a acessibilidade do teclado.

Por que usar propriedades lógicas como margin-inline-start?

Propriedades lógicas (margin-block-start, padding-inline, etc.) se adaptam à direção de escrita do documento. Em inglês (da esquerda para a direita), margin-inline-start é o mesmo que margin-left. Em árabe ou hebraico (da direita para a esquerda), torna-se margin-right automaticamente. Para sites que suportam múltiplos idiomas, propriedades lógicas tornam a internacionalização CSS automática. Para sites apenas em inglês, são equivalentes em efeito mas sinalizam a intenção mais claramente: «esta margem está no início do fluxo de texto» em vez de «esta margem está no lado esquerdo».

Como crio uma caixa de proporção de aspecto fixa?

A maneira moderna é a propriedade CSS aspect-ratio: aspect-ratio: 16/9 em um div faz sua altura automaticamente 9/16 de sua largura. Suportado em todos os navegadores modernos (2021+). A técnica legada usa padding-top como porcentagem: um div com padding-top: 56.25% cria uma proporção 16:9 (9/16 = 56.25%). O truque padding-top ainda funciona mas a sintaxe de propriedade é mais limpa. Use aspect-ratio para novo código; o hack legado permanece em Tailwind e outras ferramentas que precisam de amplo suporte de navegador.

Ferramentas relacionadas

Gerador de várias colunas CSS Gerador de grade CSS Gerador de CSS Flexbox Gerador CSS Border Radius