Éléments Flex CSS
Flex Container pilote le parent. Les éléments flex répondent à une autre question : comment chaque enfant grandit, rétrécit et démarre sa taille dans cette rangée ou colonne ? Maîtrisez basis, grow et shrink avant de courir après les motifs flex responsives.
Une boîte à outils des éléments flex
📊 Éléments flex en un coup d’œil
| Propriété | Rôle au quotidien |
|---|---|
flex-basis |
Taille principale de départ avant répartition de l’espace libre |
flex-grow |
Combien d’espace restant cet élément réclame (facteur sans unité) |
flex-shrink |
Avec quelle volonté cet élément rétrécit quand l’espace manque |
flex |
Raccourci pour grow, shrink et basis |
align-self |
Remplace le align-items du conteneur pour un seul élément |
order |
Change l’ordre visuel (à utiliser avec parcimonie — gardez DOM et accessibilité sains) |
Voyez basis comme la longueur de départ préférée de l’élément sur l’axe principal. Grow et shrink négocient ensuite l’espace libre ou manquant qui reste.
flex-grow — prendre l’espace restant
Un facteur de 1 laisse un élément s’étendre dans l’espace libre. Les facteurs frères rivalisent : deux éléments avec flex-grow: 1 partagent le reste à parts égales.
.layout {
display: flex;
gap: 1rem;
}
.layout__main {
flex-grow: 1;
}
.layout__aside {
flex-grow: 0;
width: 14rem;
}
flex-basis — partir d’une taille
flex-basis fixe la taille principale de départ avant le calcul grow/shrink. Préférez basis pour l’algorithme flex ; width/height comptent encore, mais basis est le point de départ natif de flex.
.layout__aside {
flex-basis: 14rem;
flex-grow: 0;
flex-shrink: 0;
}
flex-shrink — rendre de l’espace
Quand la rangée est trop serrée, les facteurs shrink décident qui se comprime. flex-shrink: 0 protège les icônes ou rails fixes d’être écrasés.
.icon-rail {
flex-shrink: 0;
flex-basis: 3rem;
}
Le raccourci flex
flex: grow shrink basis regroupe le trio. Defaults calmes courants : flex: 1 (grandir, autoriser le rétrécissement, basis auto) pour un enfant qui remplit ; flex: 0 0 auto pour une puce rigide.
.card__body {
flex: 1 1 auto;
}
.card__badge {
flex: 0 0 auto;
}
align-self — un élément, un autre alignement transversal
Remplacez le align-items du conteneur pour un seul enfant. Utile quand un badge doit coller au début tandis que les frères restent centrés.
.row {
display: flex;
align-items: center;
gap: 0.75rem;
}
.row .note {
align-self: flex-start;
}
Une habitude calme d’élément flex
Basis d’abord pour la taille voulue, puis les facteurs grow/shrink, puis le raccourci pour ranger. Utilisez align-self avec parcimonie. Évitez les tours de order qui brouillent le parcours clavier et lecteur d’écran — et laissez les motifs flex avec media queries pour Flex Responsive.
.cluster__main {
flex: 1 1 auto;
}
.cluster__meta {
flex: 0 0 auto;
align-self: center;
}
À vous de jouer
- Créez une rangée main + aside ; donnez à main
flex-grow: 1. - Réglez l’aside avec
flex-basis: 14remetflex-shrink: 0. - Protégez une icône avec
flex-shrink: 0. - Réécrivez grow/shrink/basis avec le raccourci
flex. - Remplacez l’alignement transversal d’un enfant avec
align-self.
Erreurs fréquentes
- Mettre
flex-growsur le conteneur plutôt que sur un élément - Confondre
widthetflex-basispuis s’étonner que le calcul flex diverge - Réordonner avec
orderet casser l’ordre de tabulation/source - Laisser les logos s’écraser parce que shrink est resté au défaut
- Traiter cette leçon comme le module Flex Responsive
Résumé
- Les éléments flex contrôlent croissance, rétrécissement et basis de départ
flex-growpartage l’espace libre ;flex-shrinkpartage la compressionflex-basisest la taille de départ flex sur l’axe principal- Le raccourci
flexetalign-selfaffinent les enfants un par un - Les motifs flex responsives viennent ensuite ; utilisez
orderavec soin
🧠 Testez Vos Connaissances
Testez Vos Connaissances
Mettez-vous au défi avec ce quiz interactif et voyez à quel point vous comprenez le sujet
📝 Instructions
- Lisez chaque question attentivement
- Sélectionnez la meilleure réponse pour chaque question
- Vous pouvez refaire le quiz autant de fois que vous le souhaitez
- Votre progression sera affichée en haut