Proprietà justify-content

La proprietà justify-content definisce l'allineamento degli elementi lungo l'asse principale per i blocchi flex e l'asse orizzontale per i grid. Si applica all'elemento genitore.

Sintassi

cssselettore {
  justify-content: flex-start | flex-end | center | space-between | space-around;
}

Valori

Valore Descrizione
flex-start I blocchi sono allineati all'inizio dell'asse principale (orizzontale).
flex-end I blocchi sono allineati alla fine dell'asse principale (orizzontale).
center I blocchi sono centrati lungo l'asse principale (orizzontale).
space-between I blocchi sono distribuiti lungo l'asse principale (orizzontale), con il primo elemento allineato all'inizio dell'asse, e l'ultimo alla fine.
space-around I blocchi sono distribuiti lungo l'asse principale (orizzontale), con lo stesso spazio tra il primo blocco e l'inizio dell'asse, l'ultimo blocco e la fine dell'asse, e tra gli altri blocchi.
Tuttavia, non sono uguali, come potrebbe sembrare: gli spazi si sommano e tra due blocchi la distanza è il doppio di quella tra un blocco e l'inizio/fine dell'asse.

Valore predefinito: flex-start.

Esempio . Valore flex-start

Ora l'asse è orientato da sinistra a destra (grazie a flex-direction: row), e i blocchi sono allineati al lato sinistro:

html<div id="parent">
  <div>1</div>
  <div>2</div>
  <div>3</div>
  <div>4</div>
  <div>5</div>
</div>
css#parent {
  display: flex;
  justify-content: flex-start;
  flex-direction: row;
  border: 1px solid #696989;
}
#parent > div {
  width: 100px;
  height: 50px;
  border: 1px solid #696989;
}

Результат:

Esempio . Valore flex-end

In questo esempio l'asse è anch'esso orientato da sinistra a destra, ma i blocchi sono allineati al lato destro, poiché è impostato justify-content con il valore flex-end:

html<div id="parent">
  <div>1</div>
  <div>2</div>
  <div>3</div>
  <div>4</div>
  <div>5</div>
</div>
css#parent {
  display: flex;
  justify-content: flex-end;
  flex-direction: row;
  border: 1px solid #696989;
}
#parent > div {
  width: 100px;
  height: 50px;
  border: 1px solid #696989;
}

Результат:

Esempio . Valore center

Ora i blocchi saranno centrati indipendentemente dalla direzione dell'asse principale:

html<div id="parent">
  <div>1</div>
  <div>2</div>
  <div>3</div>
  <div>4</div>
  <div>5</div>
</div>
css#parent {
  display: flex;
  justify-content: center;
  flex-direction: row;
  border: 1px solid #696989;
}
#parent > div {
  width: 100px;
  height: 50px;
  border: 1px solid #696989;
}

Результат:

Esempio . Valore space-between

I blocchi sono distribuiti lungo l'asse principale, con il primo elemento allineato all'inizio dell'asse, e l'ultimo alla fine:

html<div id="parent">
  <div>1</div>
  <div>2</div>
  <div>3</div>
  <div>4</div>
  <div>5</div>
</div>
css#parent {
  display: flex;
  justify-content: space-between;
  flex-direction: row;
  border: 1px solid #696989;
}
#parent > div {
  width: 100px;
  height: 50px;
  border: 1px solid #696989;
}

Результат:

Esempio . Valore space-around

I blocchi sono distribuiti lungo l'asse principale, con lo stesso spazio tra il primo blocco e l'inizio dell'asse, l'ultimo blocco e la fine dell'asse, e tra gli altri blocchi. Tuttavia, gli spazi si sommano e tra due blocchi la distanza è il doppio di quella tra un blocco e l'inizio/fine dell'asse:

html<div id="parent">
  <div>1</div>
  <div>2</div>
  <div>3</div>
  <div>4</div>
  <div>5</div>
</div>
css#parent {
  display: flex;
  justify-content: space-around;
  flex-direction: row;
  border: 1px solid #696989;
}
#parent > div {
  width: 100px;
  height: 50px;
  border: 1px solid #696989;
}

Результат:

Esempio . Valore center. Asse verso il basso

Cambiamo la direzione dell'asse principale, impostando flex-direction al valore column:

html<div id="parent">
  <div>1</div>
  <div>2</div>
  <div>3</div>
  <div>4</div>
  <div>5</div>
</div>
css#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;
}

Результат:

Esempio . Valore space-between. Asse verso il basso

Ora i blocchi saranno distribuiti uniformemente lungo la verticale:

html<div id="parent">
  <div>1</div>
  <div>2</div>
  <div>3</div>
  <div>4</div>
  <div>5</div>
</div>
css#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;
}

Результат:

Esempio . Allineamento all'inizio dell'asse orizzontale (righe) nel grid

Impostiamo l'allineamento per i nostri elementi all'inizio dell'asse orizzontale:

html<div id="parent">
  <div>1</div>
  <div>2</div>
  <div>3</div>
  <div>4</div>
  <div>5</div>
</div>
css#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;
}

Результат:

Esempio . Allineamento al centro dell'asse orizzontale nel grid

Ora impostiamo l'allineamento per i nostri elementi al centro dell'asse orizzontale:

html<div id="parent">
  <div>1</div>
  <div>2</div>
  <div>3</div>
  <div>4</div>
  <div>5</div>
</div>
css#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;
}

Результат:

Esempio . Allineamento alla fine dell'asse orizzontale nel grid

Impostiamo l'allineamento per i nostri elementi alla fine dell'asse orizzontale:

html<div id="parent">
  <div>1</div>
  <div>2</div>
  <div>3</div>
  <div>4</div>
  <div>5</div>
</div>
css#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;
}

Результат:

Vedi anche

  • la proprietà flex-direction,
    che definisce la direzione degli assi dei blocchi flex
  • la proprietà align-items,
    che definisce l'allineamento lungo l'asse trasversale
  • la proprietà flex-wrap,
    che definisce la multilinea dei blocchi flex
  • la proprietà flex-flow,
    scorciatoia per flex-direction e flex-wrap
  • la proprietà order,
    che definisce l'ordine dei blocchi flex
  • la proprietà align-self,
    che definisce l'allineamento di un singolo blocco
  • la proprietà flex-basis,
    che definisce la dimensione di un specifico blocco flex
  • la proprietà flex-grow,
    che definisce l'espansione dei blocchi flex
  • la proprietà flex-shrink,
    che definisce la contrazione dei blocchi flex
  • la proprietà flex,
    scorciatoia per flex-grow, flex-shrink e flex-basis