O Centro Perfeito
Parte da seção Styling with CSS do Journey de HTML da Coddy — lição 48 de 76.
No CSS, alcançar o "centro perfeito" — centralizar um elemento tanto horizontal quanto verticalmente dentro de seu pai — é um desafio comum de layout. O Flexbox oferece uma solução elegante e direta para esse problema. Ao combinar as propriedades justify-content e align-items, você pode centralizar facilmente um elemento filho dentro de seu contêiner flex, independentemente do tamanho do filho ou do pai.
Aqui está como alcançar a centralização perfeita usando Flexbox:
.container {
display: flex; /* Transforma o pai em um container flex */
justify-content: center; /* Centraliza o filho horizontalmente ao longo do eixo principal */
align-items: center; /* Centraliza o filho verticalmente ao longo do eixo transversal */
}Para fazer esta técnica funcionar de forma eficaz, certifique-se de que o contêiner flex tenha uma altura definida. Se a altura do contêiner não for definida explicitamente, ele terá apenas a altura do seu conteúdo e o centralizamento vertical pode não ser aparente.
Aqui está um exemplo de como usar esta técnica em HTML:
<div class="container">
<div class="child">This is centered</div>
</div>.container {
display: flex;
justify-content: center;
align-items: center;
height: 300px; /* Set a specific height for the container */
border: 1px solid black; /* Optional: Add a border for visualization */
}
.child {
padding: 20px;
border: 1px solid red;
}Neste exemplo, o elemento .container tem uma altura de 300px, e o elemento .child será perfeitamente centralizado tanto horizontal quanto verticalmente dentro dele.
Desafio
FácilVocê recebeu um documento HTML com uma divisão pai (<div>) que contém uma divisão filha (<div>). Sua tarefa é usar Flexbox para centralizar perfeitamente a divisão filha dentro da divisão pai. Siga os passos abaixo:
- Escreva uma regra CSS que selecione o elemento
<div>com a classeparent. - Defina a propriedade
displaydo elemento.parentparaflexpara transformá-lo em um contêiner flex. - Defina a propriedade
justify-contentdo elemento.parentparacenterpara centralizar o filho horizontalmente. - Defina a propriedade
align-itemsdo elemento.parentparacenterpara centralizar o filho verticalmente. - Atribua ao elemento
.parentumaheightde200pxpara garantir que a centralização vertical seja visível.
Folha de consulta
Para centralizar perfeitamente um elemento tanto horizontal quanto verticalmente usando Flexbox, combine justify-content: center e align-items: center:
.container {
display: flex;
justify-content: center; /* Centralizar horizontalmente */
align-items: center; /* Centralizar verticalmente */
height: 300px; /* Define a altura para que a centralização vertical seja visível */
}O contêiner flex deve ter uma altura definida para que a centralização vertical seja aparente.
Experimente você mesmo
<html>
<head>
<title>The Perfect Center</title>
<style>
/* Write CSS rules here */
</style>
</head>
<body>
<div class="parent">
<div class="child">Center Me</div>
</div>
</body>
</html>Esta lição inclui um quiz rápido. Comece a lição para respondê-lo e acompanhar seu progresso.
Todas as lições de Styling with CSS
4Fundamentos de Texto
Cor do TextoFamília da FonteTamanho da FontePeso da FonteAlinhamento de TextoDecoração de TextoDesafio de Recapitulação nº 1Desafio de Recapitulação nº 27Modelo de Caixa Parte 1
O que é o Modelo de Caixa?PaddingMargensBordasLargura e AlturaDesafio de Revisão3Seletores Básicos
Introdução aos SeletoresSeletor de TipoSeletor de ClasseSeletor de IDSeletores de GrupoSeletor UniversalDesafio de Seleção9Flex Box
O que é Flex Box?Flex DirectionJustify ContentAlign ItemsO Centro PerfeitoDesafio de Flex Box12Fundamentos do Design Responsivo
O que é Design Responsivo?Meta Tag ViewportLayouts FluidosUnidades de ViewportFundamentos de Media QueriesImagens Flexíveis