Propriedade justify-content
A propriedade justify-content define o alinhamento
dos elementos ao longo do eixo principal para contêineres flex e
ao longo do eixo horizontal para grids.
Aplica-se ao elemento pai.
Sintaxe
seletor {
justify-content: flex-start | flex-end | center | space-between | space-around;
}
Valores
| Valor | Descrição |
|---|---|
flex-start |
Os blocos são alinhados no início do eixo principal (horizontal). |
flex-end |
Os blocos são alinhados no final do eixo principal (horizontal). |
center |
Os blocos são centralizados ao longo do eixo principal (horizontal). |
space-between |
Os blocos são distribuídos uniformemente ao longo do eixo principal (horizontal), sendo que o primeiro elemento é alinhado no início do eixo e o último no final. |
space-around |
Os blocos são distribuídos ao longo do eixo principal (horizontal),
sendo que o espaço entre o primeiro bloco e o início do eixo,
e entre o último bloco e o final do eixo, é igual ao espaço
entre os blocos.
No entanto, eles não são iguais, como poderia parecer: os espaços são somados e entre dois blocos a distância é duas vezes maior do que entre um bloco e o início/final do eixo. |
Valor padrão: flex-start.
Exemplo . Valor flex-start
Agora o eixo está direcionado da esquerda para a direita (isso é feito por flex-direction: row), e os blocos estão alinhados no lado esquerdo:
<div id="parent">
<div>1</div>
<div>2</div>
<div>3</div>
<div>4</div>
<div>5</div>
</div>
#parent {
display: flex;
justify-content: flex-start;
flex-direction: row;
border: 1px solid #696989;
}
#parent > div {
width: 100px;
height: 50px;
border: 1px solid #696989;
}
:
Exemplo . Valor flex-end
Neste exemplo, o eixo também está direcionado da esquerda
para a direita, mas os blocos estão alinhados no lado direito,
pois foi definido justify-content com o valor
flex-end:
<div id="parent">
<div>1</div>
<div>2</div>
<div>3</div>
<div>4</div>
<div>5</div>
</div>
#parent {
display: flex;
justify-content: flex-end;
flex-direction: row;
border: 1px solid #696989;
}
#parent > div {
width: 100px;
height: 50px;
border: 1px solid #696989;
}
:
Exemplo . Valor center
Agora os blocos ficarão centralizados independentemente da direção do eixo principal:
<div id="parent">
<div>1</div>
<div>2</div>
<div>3</div>
<div>4</div>
<div>5</div>
</div>
#parent {
display: flex;
justify-content: center;
flex-direction: row;
border: 1px solid #696989;
}
#parent > div {
width: 100px;
height: 50px;
border: 1px solid #696989;
}
:
Exemplo . Valor space-between
Os blocos são distribuídos uniformemente ao longo do eixo principal, sendo que o primeiro elemento é alinhado no início do eixo e o último no final:
<div id="parent">
<div>1</div>
<div>2</div>
<div>3</div>
<div>4</div>
<div>5</div>
</div>
#parent {
display: flex;
justify-content: space-between;
flex-direction: row;
border: 1px solid #696989;
}
#parent > div {
width: 100px;
height: 50px;
border: 1px solid #696989;
}
:
Exemplo . Valor space-around
Os blocos são distribuídos ao longo do eixo principal, sendo que o espaço entre o primeiro bloco e o início do eixo, e entre o último bloco e o final do eixo, é igual ao espaço entre os blocos. No entanto, os espaços são somados e entre dois blocos a distância é duas vezes maior do que entre um bloco e o início/final do eixo:
<div id="parent">
<div>1</div>
<div>2</div>
<div>3</div>
<div>4</div>
<div>5</div>
</div>
#parent {
display: flex;
justify-content: space-around;
flex-direction: row;
border: 1px solid #696989;
}
#parent > div {
width: 100px;
height: 50px;
border: 1px solid #696989;
}
:
Exemplo . Valor center. Eixo para baixo
Vamos mudar a direção do eixo principal, definindo flex-direction
com o valor column:
<div id="parent">
<div>1</div>
<div>2</div>
<div>3</div>
<div>4</div>
<div>5</div>
</div>
#parent {
display: flex;
justify-content: center;
flex-direction: column;
height: 400px;
border: 1px solid #696989;
}
#parent > div {
width: 100px;
height: 50px;
border: 1px solid #696989;
}
:
Exemplo . Valor space-between. Eixo para baixo
Agora os blocos serão distribuídos uniformemente na vertical:
<div id="parent">
<div>1</div>
<div>2</div>
<div>3</div>
<div>4</div>
<div>5</div>
</div>
#parent {
display: flex;
justify-content: space-between;
flex-direction: column;
height: 400px;
border: 1px solid #696989;
}
#parent > div {
width: 100px;
height: 50px;
border: 1px solid #696989;
}
:
Exemplo . Alinhamento no início do eixo horizontal (linhas) no grid
Vamos definir o alinhamento para nossos elementos no início do eixo horizontal:
<div id="parent">
<div>1</div>
<div>2</div>
<div>3</div>
<div>4</div>
<div>5</div>
</div>
#parent {
display: grid;
justify-content: start;
grid-template-columns: 100px 100px;
grid-template-rows: repeat(3, 1fr);
gap: 10px;
padding: 10px;
border: 2px solid #696989;
height: 200px;
width: 400px;
}
#parent > div {
gap: 10px;
padding: 10px;
box-sizing: border-box;
border: 1px solid #696989;
}
:
Exemplo . Alinhamento no centro do eixo horizontal no grid
Agora vamos definir o alinhamento para nossos elementos no centro do eixo horizontal:
<div id="parent">
<div>1</div>
<div>2</div>
<div>3</div>
<div>4</div>
<div>5</div>
</div>
#parent {
display: grid;
justify-content: center;
grid-template-columns: 100px 100px;
grid-template-rows: repeat(3, 1fr);
gap: 10px;
padding: 10px;
border: 2px solid #696989;
height: 200px;
width: 400px;
}
#parent > div {
gap: 10px;
padding: 10px;
box-sizing: border-box;
border: 1px solid #696989;
}
:
Exemplo . Alinhamento no final do eixo horizontal no grid
Vamos definir o alinhamento para nossos elementos no final do eixo horizontal:
<div id="parent">
<div>1</div>
<div>2</div>
<div>3</div>
<div>4</div>
<div>5</div>
</div>
#parent {
display: grid;
justify-content: end;
grid-template-columns: 100px 100px;
grid-template-rows: repeat(3, 1fr);
gap: 10px;
padding: 10px;
border: 2px solid #696989;
height: 200px;
width: 400px;
}
#parent > div {
gap: 10px;
padding: 10px;
box-sizing: border-box;
border: 1px solid #696989;
}
:
Veja também
-
a propriedade
flex-direction,
que define a direção dos eixos em contêineres flex -
a propriedade
align-items,
que define o alinhamento ao longo do eixo transversal -
a propriedade
flex-wrap,
que define a quebra de linha em contêineres flex -
a propriedade
flex-flow,
atalho para flex-direction e flex-wrap -
a propriedade
order,
que define a ordem dos elementos flex -
a propriedade
align-self,
que define o alinhamento de um único elemento -
a propriedade
flex-basis,
que define o tamanho inicial de um elemento flex -
a propriedade
flex-grow,
que define a capacidade de crescimento de elementos flex -
a propriedade
flex-shrink,
que define a capacidade de redução de elementos flex -
a propriedade
flex,
atalho para flex-grow, flex-shrink e flex-basis