Propiedad justify-content

La propiedad justify-content establece la alineación de los elementos a lo largo del eje principal para bloques flex y a lo largo del eje horizontal para grids. Se aplica al elemento padre.

Sintaxis

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

Valores

Valor Descripción
flex-start Los bloques están pegados al inicio del eje principal (horizontal).
flex-end Los bloques están pegados al final del eje principal (horizontal).
center Los bloques están centrados a lo largo del eje principal (horizontal).
space-between Los bloques se distribuyen a lo largo del eje principal (horizontal), donde el primer elemento está pegado al inicio del eje, y el último - al final.
space-around Los bloques se distribuyen a lo largo del eje principal (horizontal), donde entre el primer bloque y el inicio del eje, y entre el último bloque y el final del eje, hay un espacio igual al que hay entre el resto de los bloques.
Sin embargo, no son iguales, como podría parecer: los espacios se suman y entre dos bloques la distancia es dos veces mayor que entre un bloque y el inicio/final del eje.

Valor por defecto: flex-start.

Ejemplo . Valor flex-start

Actualmente el eje está dirigido de izquierda a derecha (esto lo hace flex-direction: row), y los bloques están pegados al lado izquierdo:

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;
}

Результат:

Ejemplo . Valor flex-end

En este ejemplo el eje también está dirigido de izquierda a derecha, pero los bloques están pegados al lado derecho, ya que se estableció justify-content con el valor 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;
}

Результат:

Ejemplo . Valor center

Ahora los bloques estarán centrados independientemente de la dirección del eje principal:

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;
}

Результат:

Ejemplo . Valor space-between

Los bloques se distribuyen a lo largo del eje principal, donde el primer elemento está pegado al inicio del eje, y el último - al final:

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;
}

Результат:

Ejemplo . Valor space-around

Los bloques se distribuyen a lo largo del eje principal, donde entre el primer bloque y el inicio del eje, y entre el último bloque y el final del eje, hay un espacio igual al que hay entre el resto de los bloques. Sin embargo, los espacios se suman y entre dos bloques la distancia es dos veces mayor que entre un bloque y el inicio/final del eje:

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;
}

Результат:

Ejemplo . Valor center. Eje hacia abajo

Cambiemos la dirección del eje principal, estableciendo flex-direction con el valor 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;
}

Результат:

Ejemplo . Valor space-between. Eje hacia abajo

Ahora los bloques se distribuirán uniformemente a lo largo de la vertical:

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;
}

Результат:

Ejemplo . Alineación al inicio del eje horizontal (filas) en grid

Vamos a establecer la alineación para nuestros elementos al inicio del eje horizontal:

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;
}

Результат:

Ejemplo . Alineación al centro del eje horizontal en grid

Y ahora vamos a establecer la alineación para nuestros elementos al centro del eje horizontal:

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;
}

Результат:

Ejemplo . Alineación al final del eje horizontal en grid

Vamos a establecer la alineación para nuestros elementos al final del eje horizontal:

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;
}

Результат:

Véase también

  • la propiedad flex-direction,
    que establece la dirección de los ejes de los bloques flex
  • la propiedad align-items,
    que establece la alineación a lo largo del eje transversal
  • la propiedad flex-wrap,
    que establece la multilínea de los bloques flex
  • la propiedad flex-flow,
    abreviatura para flex-direction y flex-wrap
  • la propiedad order,
    que establece el orden de los bloques flex
  • la propiedad align-self,
    que establece la alineación de un bloque individual
  • la propiedad flex-basis,
    que establece el tamaño de un bloque flex específico
  • la propiedad flex-grow,
    que establece la capacidad de expansión de los bloques flex
  • la propiedad flex-shrink,
    que establece la capacidad de contracción de los bloques flex
  • la propiedad flex,
    abreviatura para flex-grow, flex-shrink y flex-basis