CodeGym /Cours Java /Frontend SELF FR /Grilles réactives

Grilles réactives

Frontend SELF FR
Niveau 25 , Leçon 2
Disponible

3.1 Flexbox

Créer des layouts flexibles utilisant Flexbox et Grid est une technique clé pour le développement de sites web réactifs modernes. Ces technos permettent de gérer facilement l'agencement des éléments sur une page, les rendant adaptables à différents formats d'écran et appareils.

Flexbox (Flexible Box Layout Module) est conçu pour l'agencement unidimensionnel des éléments (soit en ligne, soit en colonne). Flexbox simplifie la création de layouts flexibles et réactifs.

Concepts clés de Flexbox :

  • Flex-container : élément auquel est appliquée la propriété display: flex
  • Flex-éléments : éléments enfants d'un flex-container, disposés à l'intérieur

Propriétés Flexbox

Flex-container :

  • display: flex : définit l'élément comme un container flex
  • flex-direction : établit la direction de disposition des flex-éléments (row, column, row-reverse, column-reverse)
  • justify-content : contrôle l'alignement des flex-éléments sur l'axe principal (flex-start, flex-end, center, space-between, space-around)
  • align-items : contrôle l'alignement des flex-éléments sur l'axe transversal (stretch, flex-start, flex-end, center, baseline)

Flex-éléments :

  • flex-grow : détermine la capacité d'un élément à croître s'il y a de l'espace disponible
  • flex-shrink : détermine la capacité d'un élément à rétrécir s'il y a manque d'espace
  • flex-basis : définit la taille initiale de l'élément avant la distribution de l'espace disponible
  • align-self : redéfinit l'alignement de l'élément sur l'axe transversal, défini dans align-items

Exemple d'utilisation de Flexbox

Créons un layout avec trois colonnes qui s'adapte à différents formats d'écran:

HTML
    
      <!DOCTYPE html>
      <html lang="en">
        <head>
          <meta charset="UTF-8">
          <meta name="viewport" content="width=device-width, initial-scale=1.0">
          <title>Exemple de Flexbox</title>
          <style>
            .flex-container {
              display: flex;
              justify-content: space-between;
              align-items: stretch;
              flex-wrap: wrap;
            }

            .flex-item {
              flex: 1 1 200px;
              margin: 10px;
              padding: 20px;
              background-color: #f4f4f4;
              text-align: center;
            }
          </style>
        </head>
        <body>
          <div class="flex-container">
            <div class="flex-item">Colonne 1</div>
            <div class="flex-item">Colonne 2</div>
            <div class="flex-item">Colonne 3</div>
          </div>
        </body>
      </html>
    
  

Explication du code :

  • .flex-container : définit le container comme un flex-container, aligne les éléments avec des espaces égaux entre eux et permet aux éléments de passer à la ligne suivante si l'espace est insuffisant
  • .flex-item : flex-éléments qui occupent un espace égal, ont une largeur minimale de 200px et sont répartis uniformément à l'intérieur du container

3.2 CSS Grid

Le CSS Grid Layout est un système de mise en page bidimensionnel qui permet de créer des layouts complexes en utilisant des lignes et des colonnes.

Concepts clés du CSS Grid :

  • Grid-container : élément auquel est appliquée la propriété display: grid
  • Grid-éléments : éléments enfants d'un grid-container, disposés dans la grille

Propriétés du CSS Grid

Grid-container :

  • display: grid : définit l'élément comme un grid-container
  • grid-template-columns : établit le nombre et la taille des colonnes dans la grille
  • grid-template-rows : établit le nombre et la taille des lignes dans la grille
  • gap : contrôle les espaces entre les lignes et les colonnes
  • justify-items : contrôle l'alignement horizontal des grid-éléments
  • align-items : contrôle l'alignement vertical des grid-éléments

    Grid-éléments :

  • grid-column : détermine combien de colonnes un élément va s'étendre
  • grid-row : détermine combien de lignes un élément va s'étendre
  • justify-self : redéfinit l'alignement horizontal de l'élément
  • align-self : redéfinit l'alignement vertical de l'élément

Exemple d'utilisation du CSS Grid

Créons un layout avec trois colonnes et deux lignes qui s'adapte aux différents formats d'écran.

HTML
    
      <!DOCTYPE html>
      <html lang="en">
        <head>
          <meta charset="UTF-8">
          <meta name="viewport" content="width=device-width, initial-scale=1.0">
          <title>Exemple de CSS Grid</title>
          <style>
            .grid-container {
              display: grid;
              grid-template-columns: repeat(3, 1fr);
              grid-template-rows: repeat(2, 1fr);
              gap: 10px;
            }

            .grid-item {
              padding: 20px;
              background-color: #e4e4e4;
              text-align: center;
            }
          </style>
        </head>
        <body>
          <div class="grid-container">
            <div class="grid-item">Élément 1</div>
            <div class="grid-item">Élément 2</div>
            <div class="grid-item">Élément 3</div>
            <div class="grid-item">Élément 4</div>
            <div class="grid-item">Élément 5</div>
            <div class="grid-item">Élément 6</div>
          </div>
        </body>
      </html>
    
  

Explication du code :

  • .grid-container : définit le container comme un grid-container avec trois colonnes et deux lignes, chaque élément occupant un espace égal
  • .grid-item : grid-éléments avec des marges et un fond uniformes
Commentaires
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION