Como centralizar as coisas com o flexbox CSS
Entenda como centralizar itens utilizando Flexbox
É normal que alguém iniciante tenha dificuldades para tarefas “simples”, como alinhar um item na página. Eu mesmo já passei por isso, perdendo um tempo precioso tentando posicionar determinado item no centro do site, por exemplo.
Abaixo, vou mostrar alguns meios que podemos utilizar para alinhar as coisas de maneira prática, com a utilização de um recurso disponibilizado pelo próprio CSS, chamado “ flexbox ”.
Os recursos que vamos utilizar serão esses:
- display: flex;
- justify-content: flex-start;
- justify-content: center;
- justify-content: flex-end;
- align-items: flex-start;
- align-items: center;
- align-items: flex-end;
Alinhamento horizontal
O HTML abaixo será o mesmo durante todos os exemplos.
Código HTML:
<!DOCTYPE html>
<html lang="pt-br" dir="ltr">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="stylesheet" type="text/css" href="style.css">
<title>Flexbox</title>
</head>
<body>
<div class="container">
<div class="item">
Example
</div>
</div>
</body>
</html>
Alinhando no início, na horizontal:
Código CSS
body {
margin: 0;
padding: 0;
box-sizing: border-box;
width: 100vw;
height: 100vh;
overflow: hidden;
}
.container {
width: 100%;
height: 100%;
display: flex;
background-color: grey;
justify-content: flex-start;/* Basta alterar esta propriedade para alinhar a classe .item */
}
.item {
width: 300px;
height: 150px;
padding: 8px;
background-color: green;
font-family: arial, sans-serif, helvetica;
font-size: 20px;
}
Centralizando na horizontal:
Código CSS
body {
margin: 0;
padding: 0;
box-sizing: border-box;
width: 100vw;
height: 100vh;
overflow: hidden;
}
.container {
width: 100%;
height: 100%;
display: flex;
background-color: grey;
justify-content: center;/* Basta alterar esta propriedade para alinhar a classe .item */
}
.item {
width: 300px;
height: 150px;
padding: 8px;
background-color: green;
font-family: arial, sans-serif, helvetica;
font-size: 20px;
}
Alinhando no final, na horizontal:
Código CSS
body {
margin: 0;
padding: 0;
box-sizing: border-box;
width: 100vw;
height: 100vh;
overflow: hidden;
}
.container {
width: 100%;
height: 100%;
display: flex;
background-color: grey;
justify-content: flex-end;/* Basta alterar esta propriedade para alinhar a classe .item */
}
.item {
width: 300px;
height: 150px;
padding: 8px;
background-color: green;
font-family: arial, sans-serif, helvetica;
font-size: 20px;
}
Alinhamento Vertical
Alinhando no início, na vertical:
Código CSS
body {
margin: 0;
padding: 0;
box-sizing: border-box;
width: 100vw;
height: 100vh;
overflow: hidden;
}
.container {
width: 100%;
height: 100%;
display: flex;
background-color: grey;
align-items: flex-start;/* Basta alterar esta propriedade para alinhar a classe .item */
}
.item {
width: 300px;
height: 150px;
padding: 8px;
background-color: green;
font-family: arial, sans-serif, helvetica;
font-size: 20px;
}
Centralizando na vertical:
Código CSS
body {
margin: 0;
padding: 0;
box-sizing: border-box;
width: 100vw;
height: 100vh;
overflow: hidden;
}
.container {
width: 100%;
height: 100%;
display: flex;
background-color: grey;
align-items: center;/* Basta alterar esta propriedade para alinhar a classe .item */
}
.item {
width: 300px;
height: 150px;
padding: 8px;
background-color: green;
font-family: arial, sans-serif, helvetica;
font-size: 20px;
}
Alinhando no final, na vertical:
Código CSS
body {
margin: 0;
padding: 0;
box-sizing: border-box;
width: 100vw;
height: 100vh;
overflow: hidden;
}
.container {
width: 100%;
height: 100%;
display: flex;
background-color: grey;
align-items: flex-end;/* Basta alterar esta propriedade para alinhar a classe .item */
}
.item {
width: 300px;
height: 150px;
padding: 8px;
background-color: green;
font-family: arial, sans-serif, helvetica;
font-size: 20px;
}
Centralizar na vertical e na horizontal
Código CSS
body {
margin: 0;
padding: 0;
box-sizing: border-box;
width: 100vw;
height: 100vh;
overflow: hidden;
}
.container {
width: 100%;
height: 100%;
display: flex;
background-color: grey;
justify-content: center;/* Basta alterar esta propriedade para alinhar a classe .item */
align-items: center;/* Basta alterar esta propriedade para alinhar a classe .item */
}
.item {
width: 300px;
height: 150px;
padding: 8px;
background-color: green;
font-family: arial, sans-serif, helvetica;
font-size: 20px;
}
Conclusão
Com o uso do flexbox é muito mais simples alinhar itens. Entretanto, é importante lembrar que o flexbox é uma ferramenta que utiliza vários atributos para o alinhamento de itens, sendo apresentado nesta publicação somente alguns deles.
Pra você que quer saber um pouco mais sobre o assunto, eu indico os sites abaixo: