Contrairement aux autres valeurs de display qui influencent uniquement l'affichage des éléments par rapport aux autres dans la page, la propriété display: flex;
ou display: inline-flex;
influence aussi l'affichage de ses enfants en les positionnant dans un corridor sur l'axe des X ou Y, en modifiant leur dimension, leur ordre, etc. afin de remplir l'espace disponible le plus adéquatement possible.
flex-direction
Comme son nom l'indique, la valeur de cette propriété définit la direction qu'auront ses enfants.
Valeurs possibles:
row
➡️ (par défaut)row-reverse
⬅️column
⬇️column-reverse
⬆️
flex-direction: row vs column
À gauche, flex-direction: row;
À droite, flex-direction: column;
flex-direction: row-reverse vs column-reverse
À gauche, flex-direction: row-reverse;
À droite, flex-direction: column-reverse;
justify-content
Un peu comme Word ou Google Doc, flexbox vous permet de justifier votre contenu horizontalement ↔️ afin atteindre l'affichage désiré.
Possibilités:
flex-start
(par défaut)flex-end
center
space-between
space-around
space-evenly
etc.
justify-content: flex-start vs flex-end
À gauche, justify-content: flex-start;
À droite, justify-content: flex-end;
justify-content: center vs space-between
À gauche, justify-content: center;
À droite, justify-content: space-between;
justify-content: space-around vs space-evenly
À gauche, justify-content: space-around;
À droite, justify-content: space-evenly;
Ces deux valeurs peuvent se ressembler dans un espace restreint, mais remarquer comment avec justify-content: space-around;
chaque élément a un espace équivalent à gauche et à droite et comment l'espace de chacun des éléments s'additionne.

Tandis qu'en justify-content: space-evenly;
l'espace n'est pas additionné, mais plutôt jumelé afin de créer des espaces identiques entre chaque élément.

align-items
Dans la même lignée que justify-content, mais cette fois à la verticale ↕️.
Possibilités:
stretch
(par défaut)flex-start
flex-end
center
etc.
align-items: stretch vs center
À gauche, align-items: stretch;
À droite, align-items: center;
align-items: flex-start vs flex-end
À gauche, align-items: flex-start;
À gauche, align-items: flex-end;
justify-content
et align-items
sont l’équivalent de brancher une clé USB en CSS. Deux ou trois tentatives sont souvent requises avant d’obtenir le résultat espéré.
align-self
La propriété align-self
est pratiquement identique à la propriété align-items à la différence qu'elle s'applique sur un élément en particulier, et non le parent, afin de l'aligner de façon différente aux autres.
Elle accepte aussi les valeurs:
stretch
flex-start
flex-end
center
etc.
Inspecteur 🕵️♂️
L'inspecteur est d'une aide précieuse lorsque l'on manipule les éléments flexbox. Dans le DOM tree, les éléments en display: flex;
ou display: inline-flex;
sont mis en évidence grâce à un badge contenant le mot "flex". Lorsque cliqué, ce badge met en évidence la zone prise dans la page par le flexbox en question.
Lorsque l'on examine les propriétés CSS appliquées à cet élément on remarque à la droite de la propriété display
un icône rappelant une grille. Lorsque cliqué, cet icône affiche différentes propriétés en lien avec flexbox, par exemple: flex-direction
, justify-content
, align-items
, etc. Les valeurs disponibles pour ces propriétés sont illustrées avec des icônes permettant d'identifier ou de tester rapidement la valeur souhaitée.