Skip to content
✨ Les cours suivant sont disponible : Html, Css, React, Algorithme ✨
cours
✨ Css
6.0 Flexbox et Grid
6 0 Flexbox Et Grid

6. Flexbox et Grid

Flexbox et Grid sont deux outils puissants en CSS pour créer des mises en page flexibles et complexes. Comprendre comment les utiliser correctement permet de créer des designs web modernes et réactifs.

1. Flexbox

Flexbox est un modèle de disposition unidimensionnel qui permet de créer des mises en page flexibles en alignant et en distribuant l'espace entre les éléments d'une manière plus prévisible et efficace que les modèles de disposition traditionnels.

Principes de base de Flexbox

Flexbox fonctionne en définissant un conteneur flexible (ou "flex container") et en plaçant à l'intérieur les éléments flexibles (ou "flex items"). Voici les propriétés CSS de base pour utiliser Flexbox :

  • display: flex; : Déclare un conteneur comme conteneur flexible, établissant ainsi un contexte de flexbox pour ses éléments enfants.
  • flex-direction : Définit la direction principale des éléments flexibles dans le conteneur. Les valeurs possibles sont row, row-reverse, column, et column-reverse.
  • justify-content : Contrôle l'alignement des éléments flexibles le long de l'axe principal du conteneur. Les valeurs possibles sont flex-start, flex-end, center, space-between, et space-around.
  • align-items : Contrôle l'alignement des éléments flexibles le long de l'axe transversal du conteneur. Les valeurs possibles sont flex-start, flex-end, center, baseline, et stretch.

Exemple d'utilisation de Flexbox

<div class="container">
    <div class="item">Item 1</div>
    <div class="item">Item 2</div>
    <div class="item">Item 3</div>
</div>
.container {
    display: flex;
    justify-content: space-between;
}
 
.item {
    flex: 1;
    padding: 10px;
    background-color: lightblue;
    border: 1px solid blue;
}

Dans cet exemple, les éléments à l'intérieur du conteneur sont disposés en utilisant Flexbox, avec un espacement égal entre eux grâce à justify-content: space-between;.

2. Grid

Grid est un modèle de disposition bidimensionnel qui permet de créer des mises en page complexes en définissant des grilles de lignes et de colonnes pour positionner les éléments avec précision.

Principes de base de Grid

Grid fonctionne en définissant un conteneur de grille (ou "grid container") et en plaçant à l'intérieur les éléments de grille (ou "grid items"). Voici les propriétés CSS de base pour utiliser Grid :

  • display: grid; : Déclare un conteneur comme conteneur de grille, établissant ainsi un contexte de grille pour ses éléments enfants.
  • grid-template-columns : Définit le nombre et la taille des colonnes de la grille.
  • grid-template-rows : Définit le nombre et la taille des lignes de la grille.
  • grid-gap : Définit l'espacement entre les lignes et les colonnes de la grille.

Exemple d'utilisation de Grid

<div class="container">
    <div class="item">Item 1</div>
    <div class="item">Item 2</div>
    <div class="item">Item 3</div>
</div>
.container {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    grid-gap: 10px;
}
 
.item {
    padding: 10px;
    background-color: lightgreen;
    border: 1px solid green;
}

Dans cet exemple, les éléments à l'intérieur du conteneur sont disposés en utilisant Grid, avec trois colonnes de largeur égale grâce à grid-template-columns: repeat(3, 1fr);.

3. Flexbox vs Grid

Flexbox et Grid sont tous deux des outils puissants pour créer des mises en page flexibles et complexes en CSS. La principale différence entre les deux réside dans leur modèle de disposition :

  • Flexbox est idéal pour les mises en page unidimensionnelles (ligne ou colonne) où les éléments doivent être alignés dans une seule direction.
  • Grid est idéal pour les mises en page bidimensionnelles où les éléments doivent être placés dans un système de lignes et de colonnes.

Conclusion

Flexbox et Grid sont des outils essentiels pour créer des mises en page modernes et réactives en CSS. Comprendre comment les utiliser correctement permet de créer des designs web sophistiqués et flexibles qui s'adaptent à différentes tailles d'écran et à diverses exigences de conception. Expérimentez avec Flexbox et Grid dans vos projets CSS pour découvrir leur plein potentiel et améliorer vos compétences en conception web.