C'est quoi CSS Grid ?
CSS Grid est un système de mise en page bidimensionnel. Contrairement à Flexbox qui travaille sur un seul axe (à la fois), Grid gère lignes ET colonnes en même temps.
Flexbox vs Grid : utilisez Flexbox pour aligner des éléments dans une direction (navbar, liste de cartes). Utilisez Grid pour créer une mise en page complète (header + sidebar + contenu + footer).
Colonnes et lignes
On active Grid avec display: grid, puis on définit la structure :
grid-template-columns: 1fr 1fr 1fr— 3 colonnes de taille égalegrid-template-columns: 200px 1fr— sidebar fixe + contenu flexiblegrid-template-rows: auto 1fr auto— header + contenu extensible + footer
L'unité fr (fraction) répartit l'espace disponible. 1fr 2fr donne 1/3 + 2/3 de la largeur.
gap: 16px ajoute de l'espace entre les cellules (comme en Flexbox).
Placement des items
Chaque item peut s'étendre sur plusieurs colonnes ou lignes :
grid-column: 1 / 3— de la colonne 1 à la colonne 3 (occupe 2 colonnes)grid-column: span 2— occupe 2 colonnes (même résultat)grid-row: 1 / 3— occupe 2 lignes
grid-template-areas : le pouvoir visuel
La propriété la plus intuitive de Grid. Vous dessinez littéralement votre mise en page :
grid-template-areas:
"header header"
"sidebar content"
"footer footer";
Chaque élément se place ensuite avec grid-area: header.
What is CSS Grid?
CSS Grid is a two-dimensional layout system. Unlike Flexbox which works on one axis at a time, Grid handles rows AND columns simultaneously.
Flexbox vs Grid: use Flexbox to align elements in one direction (navbar, card list). Use Grid to create complete layouts (header + sidebar + content + footer).
Columns and rows
Activate Grid with display: grid, then define the structure:
grid-template-columns: 1fr 1fr 1fr— 3 equal-size columnsgrid-template-columns: 200px 1fr— fixed sidebar + flexible contentgrid-template-rows: auto 1fr auto— header + expandable content + footer
The fr unit (fraction) distributes available space. 1fr 2fr gives 1/3 + 2/3 of the width.
gap: 16px adds space between cells (just like Flexbox).
Placing items
Each item can span multiple columns or rows:
grid-column: 1 / 3— from column 1 to column 3 (spans 2 columns)grid-column: span 2— spans 2 columns (same result)grid-row: 1 / 3— spans 2 rows
grid-template-areas: visual power
The most intuitive Grid property. You literally draw your layout:
grid-template-areas:
"header header"
"sidebar content"
"footer footer";
Each element then places itself with grid-area: header.
Pour pratiquer CSS Grid de manière ludique, essayez :
CSS Grid Garden : https://cssgridgarden.com/ — Un jeu gratuit pour apprendre CSS Grid en arrosant votre jardin de carottes.
L'IA a utilisé grid-template-columns: 1fr 1fr alors qu'on voulait 3 colonnes égales pour les cartes. Corrigez pour obtenir 3 colonnes.
1fr ?