Quiero aportar que justify-content y align-items no se enfocan en posicionamiento horizontal y vertical respectivamente, ya que esto va a depender de la dirección que le demos. justify-content se enfoca en el eje principal y align-items se enfoca en el eje secundario.
Cuando hacemos un display:flex; la dirección por defecto es row, por lo que nuestro eje principal es el eje horizontal y nuestro eje secundario es el vertical. Cuando cambiamos la dirección a column nuestro eje principal es el vertical y nuestro eje secundario es el horizontal.
En este video se explica muy bien sobre como flexbox maneja los ejes.
¿Quieres ver más aportes, preguntas y respuestas de la comunidad?
o inicia sesión.