CSS Layout : Flexbox et Grid
35 min Cours SNT
Pourquoi le layout CSS ?
Le layout (mise en page) permet d'organiser les elements d'une page web. Avant Flexbox et Grid, on utilisait des techniques compliquees (float, tables). Aujourd'hui, ces deux outils modernes rendent la mise en page simple et puissante.
Flexbox
Pour les mises en page 1 dimension : ligne OU colonne. Parfait pour les navbars, cartes, centrage.
CSS Grid
Pour les mises en page 2 dimensions : lignes ET colonnes. Parfait pour les layouts complexes.
Flexbox : les bases
Demo interactive
1
2
3
flexbox.css
.conteneur {
display: flex;
flex-direction: row; /* ou column */
justify-content: center; /* horizontal */
align-items: center; /* vertical */
gap: 20px; /* espacement */
}
.element {
flex: 1; /* prend l'espace disponible */
}Proprietes principales
display: flexActive Flexbox sur le conteneurflex-directionrow | column - direction des elementsjustify-contentAlignement horizontal (axe principal)align-itemsAlignement vertical (axe secondaire)flex-wrapRetour a la ligne si debordementgapEspacement entre les elementsflex-growCapacite a grandirflex-shrinkCapacite a retrecirflex-basisTaille de baseBleu = sur le conteneur parent | Vert = sur les elements enfants
CSS Grid : les bases
Exemple de grille 3 colonnes
1
2
3
4 (2 colonnes)
5
grid.css
.grille {
display: grid;
grid-template-columns: 1fr 1fr 1fr; /* 3 colonnes egales */
grid-template-rows: auto;
gap: 20px;
}
.element-large {
grid-column: span 2; /* occupe 2 colonnes */
}L'unite "fr" (fraction)
fr divise l'espace disponible en fractions :
1fr 1fr 1fr= 3 colonnes egales (33% chacune)1fr 2fr= 2 colonnes (33% et 66%)200px 1fr= sidebar fixe + contenu flexible
Exemple pratique : Navigation responsive
MonSite
AccueilA proposContact
navbar.css
/* Navigation responsive avec Flexbox */
.navbar {
display: flex;
justify-content: space-between;
align-items: center;
padding: 1rem 2rem;
}
.nav-links {
display: flex;
gap: 2rem;
}
/* Sur mobile */
@media (max-width: 768px) {
.navbar {
flex-direction: column;
}
}Flexbox vs Grid : Lequel choisir ?
Utilisez Flexbox pour :
- Barres de navigation
- Centrer un element
- Alignement en ligne ou colonne
- Cartes flexibles
Utilisez Grid pour :
- Layouts de pages completes
- Galeries d'images
- Tableaux de bord
- Grilles complexes 2D
Astuce : Vous pouvez combiner les deux ! Grid pour le layout global, Flexbox pour les composants internes.
Quiz : Teste tes connaissances
5 questions pour verifier ce que tu as appris sur Flexbox et Grid
A retenir
- Flexbox = layout 1D (ligne ou colonne)
- CSS Grid = layout 2D (lignes et colonnes)
justify-content= axe principal,align-items= axe secondaire- L'unite
frdivise l'espace disponible en fractions
