En bref : Flexbox - pro unidimensionnel axes (ligne ou colonne), et Grid - pro bidimensionnel grilles (lignes et colonnes). Dans les projets réels, ils fonctionnent en tandem : Grid construit le cadre de la page, Flexbox aligne les éléments à l'intérieur des composants. ✨

Quand utiliser Flexbox et quand utiliser Grid ? ⚖️
Utilise display:flex si...
Il est nécessaire d'aligner les éléments sur un axe (menu, panneau de boutons, carte).
Le contenu est peu fourni et il « se déroule » (wrap) sans colonnes strictes.
Une légère adaptabilité « sur place » (centrage, espaces) est importante.
.toolbar{
display:flex;
align-items:center;
justify-content:space-between;
gap:.75rem;
}Utilise display:grid si...
Besoin d'une grille avec et lignes, et colonnes (pages de destination, tableaux de bord, catalogues).
Les lignes de quadrillage claires, les « rails » et les zones répétitives sont importantes.
Un contrôle cohérent de l'adaptatif sur les points de rupture est requis.
.layout{
display:grid;
grid-template-columns: 1fr minmax(260px, 3fr) 1fr;
gap: 20px;
}
Quoi de neuf en 2025 ? 🚀
Subgrid partout. Les composants imbriqués peuvent hériter des lignes de la grille parent — moins de « béquilles » avec des retraits.
Utilisation partagée. Les systèmes de conception modernes construisent un cadre sur la grille et utilisent Flex à l'intérieur des cartes, des barres d'outils et des contrôles.
Fonctions de dimension intelligentes. Les fonctions min(), max(), clamp(), minmax(), fit-content(), ainsi que les modèles avec auto-fit/auto-fill sont largement utilisés.
.cards{
display:grid;
grid-template-columns: repeat(auto-fit, minmax(clamp(220px, 28vw, 360px), 1fr));
gap: clamp(12px, 2vw, 24px);
}Recettes rapides 🍳
Cadre de page (Grille)
.page{
display:grid;
grid-template-rows: auto 1fr auto;
grid-template-columns: minmax(16px,1fr) minmax(0,1040px) minmax(16px,1fr);
}
.header{ grid-column: 1 / -1; }
.main { grid-column: 2; }
.footer{ grid-column: 1 / -1; }La largeur du contenu est limitée, les paddings sont « absorbés » dans les colonnes extrêmes.
À l'intérieur de la carte (Flex)
.card{
display:flex;
flex-direction:column;
gap:.6rem;
}
.card__footer{
display:flex;
justify-content:space-between;
align-items:center;
}Alignement laconique du contenu et des boutons sur un axe.
Subgrid sans douleur 🧩
Lorsque le bloc à l'intérieur de la grille doit « attraper » les mêmes lignes que le parent, il est temps pour la sous-grille.
.article{
display:grid;
grid-template-columns: 1fr 2fr;
gap: 16px;
}
.article-section{
display:grid;
grid-template-columns: subgrid; /* наследуем колонки родителя */
grid-column: 1 / -1; /* растягиваемся по всей ширине */
}Résultat : moins de duplication des descriptions de colonnes et un alignement plus prévisible.
Tableau des différences 📊
Critère | Flexbox | CSS Grid |
|---|---|---|
Mesure | Un axe (ligne / colonne) | Deux axes (lignes + colonnes) |
Mises en page complexes | Limité | Parfaitement adapté |
Composants imbriqués | Simple et flexible | subgrid simplifie l'imbrication |
Courbe d'apprentissage | Ci-dessous | Un peu plus haut, mais plus puissant |
Tâches typiques | Navigation, barres d'outils, contenu de la ligne | Cadres de pages, catalogues, tableaux de bord |
Liste de contrôle de sélection 📝
Besoin d'aligner simplement les éléments sur un axe ? → Flexbox.
Besoin de colonnes/lignes explicites et d'un cadre prévisible ? → Grid.
Le composant vit à l'intérieur de la grille et doit respecter ses lignes ? → Grid + subgrid.
Vous voulez un catalogue adaptatif rapide ? → repeat(auto-fit, minmax(...)) dans Grid.
Besoin d'espacements intelligents et d'un centrage à l'intérieur du bloc ? → Flexbox.
Erreurs courantes et comment les éviter 🧯
Essayer d'assembler une mise en page complexe sur un seul Flexbox. Utilisez Grid pour le cadre, Flex pour les détails.
Dupliquer la grille dans les blocs enfants. Vérifiez si la sous-grille peut être appliquée.
Largeur codée en dur. Utilisez minmax (), clamp (), fractions (fr).
Se noyer dans les retraits. Mettez un espace au lieu de marges entre les éléments de la grille.
Dans Codique nous rendons l'apprentissage de la programmation passionnant et compréhensible : nous avons des cours intéressants avec des tâches qui aident à améliorer les compétences étape par étape.
Et nous avons aussi un chaîne de télégram, où nous discutons d'idées intéressantes, partageons nos expériences et analysons ensemble les tâches, apprendre devient non seulement utile, mais aussi amusant.
En 2025, le débat « Grid ou Flexbox » n'a pas de gagnant : les deux sont nécessaires. Utilisez Grid pour la structure et Flex pour l'alignement local. Ajoutez à cela une sous-grille, des fonctions de dimensionnement et une gestion soignée des écarts, et vos mises en page seront propres, réactives et maintenues.
Et où trébuchez-vous le plus souvent : dans la configuration des colonnes de la grille ou dans l'alignement Flex ? Que veux-tu comprendre plus en détail ? 🙂
