Aula 07 de 10

Flexbox

A forma moderna de alinhar e distribuir elementos — sem gambiarras, sem float, sem dor de cabeça.

display: flex justify-content align-items gap flex-wrap
// entendendo

Como funciona

Você coloca display: flex no container (o pai). Os filhos diretos se alinham automaticamente lado a lado.

  • justify-content — controla o eixo horizontal (ou o principal): flex-start, center, space-between, space-around
  • align-items — controla o eixo vertical (ou o cruzado): flex-start, center, stretch
  • gap — espaço entre os filhos (melhor que margin)
  • flex-wrap: wrap — permite que os filhos quebrem para a linha de baixo
  • flex-direction: column — empilha os filhos verticalmente
.container {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 16px;
}
// mão na massa

Agora é com você

Centralizar um elemento

Centralize um <div> (horizontal e vertical) dentro de um container que ocupa toda a tela. Use justify-content: center e align-items: center.

a7e1.html
Preciso de uma dica
Adicione justify-content: center; e align-items: center; no .container.
Observação: Centralizar com Flexbox é a solução mais simples e confiável. Antes do Flex, isso exigia truques complicados com position: absolute e cálculos.

Navbar com espaço entre itens

Monte uma navbar com logo à esquerda e 3 links à direita usando justify-content: space-between.

a7e2.html
Observação: Perceba que o nav interno também é um flex container — com gap separando os links. Flex dentro de flex é comum e funciona muito bem.

Grade de cards com flex-wrap

Crie 4 cards lado a lado que quebram de linha quando não cabem. Use flex-wrap: wrap e gap. Cada card deve ter flex: 1 1 180px para crescer e encolher.

a7e3.html
Observação: flex: 1 1 180px significa: pode crescer (1), pode encolher (1), mas começa com 180px. Redimensione o preview e veja os cards se adaptando automaticamente.
// desafio

layout completo

Monte uma página com: navbar (logo + links), hero centralizado com título e botão, e grade de 3 cards. Use Flexbox em todas as partes.

a7d1.html DESAFIO