
Imaginons une div qui fait 400 pixels de large, avec cinq éléments de 100 pixels de large, que va t'il se passer sur le dernière élement?

Par défaut, non, il va continuer sur la même ligne, et s'écraser pour rentrer dans l'espace disponible, donc il ne feront que 80 pixels de large au lieu des 100 prévus :

Effectivement, c'est plutôt pratique, mais si jamais tu as besoin que ton élément fasse impérativement 100 pixels de large, ça pose un problème. Dans ce cas, on peut utiliser flex-wrap en lui passant la valeur wrap, qui signifie "passe à la ligne".

Par défaut la valeur de flex-wrap est "nowrap" qui signifie "ne passe pas à la ligne" ce qui réduit les éléments si la place n'est pas suffisante. On peut aussi passer la valeur wrap-reverse, qui va commencer à afficher la première ligne en bas en remontant progressivement, mais toujours sans changer l'ordre des éléments.

Et bien ça va fonctionner de la même façon, mais par rapport à a hauteur de l'élément :
