Como centralizar uma div em CSS (Flexbox)
Crie visualmente um layout CSS flexbox: flex-direction, justify-content, align-items, flex-wrap e gap no contêiner, além de flex-grow, flex-shrink e flex-basis por filho, tudo com visualização ao vivo e CSS copiável.
Resultado
Aqui está a resposta direta para a pergunta mais frequente em CSS: para centralizar uma div, coloque display: flex, justifique-content: center e align-items: center em seu pai. É isso aí: três declarações no contêiner, e a criança fica perfeitamente centralizada tanto horizontal quanto verticalmente dentro dele, em qualquer tamanho. Esta página abre o gerador exatamente com essa combinação já aplicada, então a visualização abaixo mostra ele funcionando em três caixas numeradas agora.
Antes do flexbox, centralizar um div precisava de hacks: margin: 0 auto centralizado apenas horizontalmente e funcionava apenas em um bloco de largura fixa; centralização vertical significava posição: absoluta com margens negativas ou um truque de transformação, ambos frágeis no momento em que o conteúdo mudava de tamanho. justificar-conteúdo lida com o eixo principal e alinhar itens com o eixo cruzado - juntos eles centralizam em ambas as direções, independentemente da altura ou largura da criança, e é exatamente por isso que esse par se tornou a resposta padrão.
Arraste qualquer controle abaixo e observe as três caixas de visualização permanecerem centralizadas conforme o contêiner muda de forma ou adicione um espaço entre elas. Quando parecer certo, copie o bloco CSS na parte inferior diretamente para sua folha de estilo - ele funciona da mesma maneira em todos os navegadores modernos, sem necessidade de biblioteca.