Olá, querida(o) estudante! No artigo de hoje, vamos estudar dois dos pilares mais fundamentais e cobrados dentro do desenvolvimento frontend: o Box Model (Modelo de Caixas) e o Flexbox no CSS.
Com a consolidação do CSS3 e a necessidade de construir interfaces que se adaptem perfeitamente a diferentes tamanhos de tela, o domínio sobre como os navegadores calculam o espaço ocupado por cada elemento tornou-se indispensável. Questões de concurso frequentemente exploram detalhes de renderização, fórmulas de cálculo de dimensões e a mecânica de alinhamento em contêineres modernos.
Ao longo deste artigo, entenderemos o funcionamento das camadas do Box Model, o impacto direto da propriedade box-sizing no dimensionamento de caixas, a estrutura de eixos do Flexbox e o uso de seletores estruturais como o :nth-child. Em seguida, resolveremos questões recentes de concursos com comentários detalhados e diretos.

O Modelo de Caixas (Box Model) no CSS
No CSS, todo e qualquer elemento renderizado em um documento HTML é tratado pelo navegador como uma caixa retangular. Esse modelo é conhecido como Box Model e dita toda a ocupação de espaço e a distância entre os componentes visuais da interface.
A estrutura de uma caixa divide-se em quatro áreas concêntricas, partindo do centro em direção à extremidade externa:
- Content (Conteúdo): É o núcleo da caixa, onde textos, imagens ou mídias são efetivamente renderizados. Suas dimensões base são dadas pelas propriedades width e height.
- Padding (Preenchimento interno): Representa o espaço transparente situado entre o conteúdo e a borda do elemento. É usado para dar respiro interno ao conteúdo.
- Border (Borda): É a linha que envolve o preenchimento e o conteúdo. Possui espessura, estilo e cor configuráveis.
- Margin (Margem externa): É a área transparente externa que separa o elemento de seus vizinhos no fluxo do layout.

A Propriedade box-sizing: Padrão vs. border-box
Historicamente, o cálculo padrão das dimensões de um elemento gerava frequentes estouros de layout. Para controlar essa lógica, o CSS disponibiliza a propriedade box-sizing, que aceita dois valores principais:
1. content-box (Comportamento Padrão)
No modelo tradicional, quando você define width: 200px, essa largura é aplicada estritamente à área de conteúdo. Se você adicionar 20px de padding em cada lado e 5px de border em cada lado, a largura final visível ocupada na tela será calculada somando todas as partes:
LarguraTotal=200px(conteúdo)+40px(paddingL/R)+10px(bordaL/R)=250px
2. border-box (Abordagem Moderna)
Ao definir box-sizing: border-box, o navegador altera a fórmula de cálculo: os valores de width e height passam a incluir o conteúdo, o preenchimento (padding) e a borda (border).
Se você especificar width: 200px, o elemento ocupará exatamente 200px de largura final na tela. O navegador ajusta internamente o espaço do conteúdo para acomodar o preenchimento e as bordas, impedindo que o elemento ultrapasse os limites definidos no layout.
O Módulo Flexbox: Eixos e Alinhamento
O Flexible Box Layout (Flexbox) é um modelo unidimensional de diagramação projetado para distribuir espaço entre itens e oferecer capacidades avançadas de alinhamento dentro de um contêiner pai marcado com display: flex.
O funcionamento do Flexbox baseia-se em dois eixos perpendiculares:
- Eixo Principal (Main Axis): Determinado pela propriedade flex-direction. Por padrão, seu valor é row (linha horizontal), fazendo com que os itens fiquem dispostos lado a lado da esquerda para a direita. O alinhamento dos elementos ao longo deste eixo é controlado pela propriedade justify-content.
- Eixo Transversal (Cross Axis): É o eixo perpendicular ao eixo principal. Em um fluxo padrão em linha (row), o eixo transversal corre verticalmente. O alinhamento dos elementos ao longo do eixo transversal é controlado pela propriedade align-items.
Principais Propriedades e Comportamentos no Flexbox
Para gabaritar provas de concurso, é essencial memorizar os valores mais cobrados dessas propriedades de alinhamento:
- justify-content: space-between: Distribui os itens de maneira que o primeiro elemento fique colado no início do contêiner, o último elemento fique colado no final, e o espaço restante seja dividido igualmente apenas entre os itens internos (sem margens nas extremidades).
- justify-content: space-evenly: Distribui os itens de forma que o espaçamento entre dois itens quaisquer e o espaçamento dos itens até as bordas do contêiner sejam perfeitamente iguais.
- align-items: center: Centraliza todos os itens filhos no eixo transversal (verticalmente, caso o fluxo esteja em linha).

Seletores Estruturais: Pseudoclasse :nth-child()
O CSS3 introduziu pseudoclasses estruturais que permitem aplicar regras a elementos com base em sua posição dentro do elemento pai, sem a necessidade de criar classes adicionais no HTML.
O seletor :nth-child(an + b) utiliza uma notação algébrica onde:
- O valor de n representa um contador que se inicia em 0 (0, 1, 2, 3,…).
- A fórmula 2n (ou a palavra-chave even) seleciona os filhos em posições pares: para n=12, para n=24, selecionando o 2º e o 4º elementos filhos.
- A fórmula 2n + 1 (ou a palavra-chave odd) seleciona os filhos em posições ímpares: para n=01, para n=13, selecionando o 1º e o 3º elementos filhos.
Questões Comentadas
1) Ano: 2026 Banca: Unesc Órgão: Prefeitura de Meleiro – SC Prova: Professor de Computação
No desenvolvimento front-end moderno, a compreensão do modelo de caixa (Box Model) do CSS (Cascading Style Sheets) é essencial para o controle preciso do layout e dimensionamento dos elementos na página. Assinale a alternativa correta sobre o comportamento da propriedade box-sizing com o valor border-box.
A) Define que a largura e altura do elemento aplicam-se apenas ao conteúdo, somando-se a elas o preenchimento e a borda para obter o tamanho final ocupado.
B) Força o elemento a ocupar sempre 100% da largura da janela do navegador, independentemente do valor definido em pixels.
C) Remove todas as bordas e preenchimentos do elemento, tornando-o transparente e sem espessura visual na renderização.
D) É uma propriedade obsoleta do CSS2 que foi substituída pelo uso exclusivo de flex-grow no CSS3.
E) Altera o cálculo das dimensões do elemento, fazendo com que a largura (width) e altura (height) definidas incluam o preenchimento (padding) e a borda (border), evitando que o elemento cresça além do especificado.
Gabarito: Letra E
Comentário:
- A) Incorreta. Essa descrição corresponde ao comportamento do valor padrão content-box, onde padding e borda são somados por fora da largura informada.
- B) Incorreta. O border-box não altera a largura para 100%; o elemento continua respeitando o valor numérico definido no width.
- C) Incorreta. A propriedade não remove nem oculta bordas ou preenchimentos; ela apenas inclui a espessura desses itens no cálculo da dimensão total.
- D) Incorreta. box-sizing é um recurso moderno e amplamente utilizado no CSS3, não tendo relação de substituição com a propriedade flex-grow.
- E) Correta. No modo border-box, os valores declarados em width e height englobam o conteúdo, o preenchimento (padding) e a borda (border), garantindo que a caixa não extrapole o tamanho especificado.
2) Ano: 2026 Banca: FGV Órgão: MPE-ES Prova: Analista de Sistemas
O desenvolvimento web moderno exige domínio das tecnologias HTML5 e CSS3, que trabalham de forma complementar para estruturar e estilizar páginas. Enquanto o HTML define a semântica e a estrutura do conteúdo, o CSS3 introduz recursos avançados de layout, como Flexbox e Grid, além de seletores sofisticados e propriedades de transformação e transição.
Considere o seguinte trecho de código:
HTML
<style>
.container {
display: flex;
justify-content: space-between;
align-items: center;
}
.item:nth-child(2n) {
background-color: lightblue;
}
</style>
<div class="container">
<div class="item">A</div>
<div class="item">B</div>
<div class="item">C</div>
<div class="item">D</div>
</div>
Sobre o código apresentado, considerando o comportamento padrão dos navegadores modernos compatíveis com as especificações do W3C, assinale a afirmativa correta.
A) A propriedade justify-content: space-between distribui os itens com espaçamento igual entre eles e também nas extremidades do contêiner, deixando margens laterais iguais aos espaços internos.
B) O seletor .item:nth-child(2n) aplicará a cor de fundo lightblue apenas aos itens “A” e “C”, pois eles ocupam as posições ímpares dentro do contêiner.
C) A propriedade align-items: center alinha os itens horizontalmente ao centro do eixo principal do contêiner flexível.
D) O seletor .item:nth-child(2n) aplicará a cor de fundo lightblue aos itens “B” e “D”, pois corresponde aos elementos filhos cujas posições são múltiplos de 2.
E) Para que o Flexbox funcione corretamente, seria obrigatório declarar também a propriedade flex-direction: row, caso contrário os itens seriam empilhados verticalmente por padrão.
Gabarito: Letra D
Comentário Detalhado:
- A) Incorreta. O valor space-between cola o primeiro item no início e o último no fim, deixando espaço apenas entre os itens internos, sem criar margens nas extremidades (o comportamento descrito corresponde ao space-evenly).
- B) Incorreta. O seletor 2n seleciona posições pares (2,4), que correspondem aos itens “B” e “D”, e não aos itens ímpares “A” e “C”.
- C) Incorreta. No layout em linha (row), o align-items: center atua no eixo transversal (cross axis), alinhando os itens verticalmente, e não horizontalmente.
- D) Correta. A expressão algébrica 2n seleciona os filhos localizados em índices múltiplos de 2 (2º e 4º nós), aplicando o fundo azul-claro aos elementos “B” e “D”.
- E) Incorreta. O valor padrão de flex-direction já é row, posicionando os elementos em linha horizontal automaticamente sem exigir declaração explícita.
Conclusão
Dominar a mecânica do Box Model com box-sizing: border-box e a lógica de eixos e alinhamentos do Flexbox é indispensável para gabaritar provas de frontend. As bancas frequentemente constroem pegadinhas misturando o eixo principal com o transversal ou explorando o comportamento de fórmulas em seletores estruturais como o :nth-child. Ter esses fundamentos claros garante precisão e rapidez na resolução das questões.
Bons estudos e até nosso próximo artigo!
Para acompanhar mais conteúdos de TI, siga minha página no Instagram: @dev.anajbsouza
Referências
- MOZILLA DEVELOPER NETWORK (MDN). The box model. Disponível em: https://developer.mozilla.org/en-US/docs/Learn/CSS/Building_blocks/The_box_model
- MOZILLA DEVELOPER NETWORK (MDN). Basic concepts of flexbox. Disponível em: https://developer.mozilla.org/en-US/docs/Web/CSS/Guides/Flexible_box_layout/Basic_concepts
- MOZILLA DEVELOPER NETWORK (MDN). :nth-child(). Disponível em: https://developer.mozilla.org/en-US/docs/Web/CSS/:nth-child
![[PLANTÃO DE EDITAIS] 2° lote – Cabeçalho](https://blog-static.infra.grancursosonline.com.br/wp-content/uploads/2026/08/17101712/plantao-editais-lote2-cabecalho.webp)
![[PLANTÃO DE EDITAIS] 2° lote – Post](https://blog-static.infra.grancursosonline.com.br/wp-content/uploads/2026/08/17102051/plantao-editais-lote2-post.webp)


