Positionnement flexbox : Création d’une grille CSS11

Cet exercice consiste à créer une grille de mise en forme en utilisant les propriétés des flexbox en CSS.

HTML : Créez une page HTML de base.

Solution HTML :
<!DOCTYPE html>
<html>
    <head>
        <meta charset="utf-8">
        <title>Titre de la page</title>
    </head>
    <body>

    </body>
</html>

HTML : Ajoutez le contenu suivant à la page HTML.

<div class="container-cols">
  <div class="row">
    <div class="scale col-1">1</div>
    <div class="scale col-1">2</div>
    <div class="scale col-1">3</div>
    <div class="scale col-1">4</div>
    <div class="scale col-1">5</div>
    <div class="scale col-1">6</div>
    <div class="scale col-1">7</div>
    <div class="scale col-1">8</div>
    <div class="scale col-1">9</div>
    <div class="scale col-1">10</div>
    <div class="scale col-1">11</div>
    <div class="scale col-1">12</div>
  </div>
  
  <div class="row">
    <div class="item col-6">col-6</div>
    <div class="item col-6">col-6</div>
  </div>
  
  <div class="row">
    <div class="item col-4">col-4</div>
    <div class="item col-4">col-4</div>
    <div class="item col-4">col-4</div>
  </div>
  
  <div class="row">
    <div class="item col-3">col-3</div>
    <div class="item col-3">col-3</div>
    <div class="item col-3">col-3</div>
    <div class="item col-3">col-3</div>
  </div>
  
  <div class="row">
    <div class="item col-2">col-2</div>
    <div class="item col-8">col-8</div>
    <div class="item col-2">col-2</div>
  </div>
</div>
Détails du code :
  • container-cols : correspond à un conteneur global pour l’ensemble des lignes de contenu de la grille.
  • row : correspond à une ligne de la grille.
  • scale et item : ces classes sont uniquement destinées à la présentation de l’exercice.

HTML : Créez une feuille de styles et intégrez-la dans votre page HTML.

Solution HTML :

Code à placer dans l’en-tête de la page HTML en personnalisant la valeur de l’attribut href si nécessaire afin qu’elle corresponde à l’emplacement et au nom du fichier CSS.

<link  rel="stylesheet" type="text/css" href="style.css">

CSS : Transformez les éléments row, à l’intérieur du conteneur container-cols, en conteneurs flexibles de type flexbox.

Solution :
.container-cols .row {
  display: flex;
}

CSS : Insérez le code CSS suivant permettant de distinguer visuellement les futures colonnes.

.scale {
  background-color: #666;
  color: #ccc;
  text-align: center;
  margin: 3px 0;
}
.item {
  text-align: center;
  padding: 10px 3px;
  margin: 3px 0;
  border: 1px solid #ccc;
}

CSS : Créez une grille permettant de mettre en forme du contenu sous la forme de colonne. La grille doit être composée de 12 colonnes. Vous devez donc créer les classes : col-1, col-2, col-3, jusqu’à col-12. Pensez au modèle de boîtes lors du dimensionnement des largeurs de colonnes.

Votre grille doit permettre de créer une mise en forme comme illustrée dans l’illustration ci-dessous :

Aperçu de la grille
Aperçu de la grille
Indice :

La classe col-12 aura une largeur de 100%.

La classe col-1 aura une largeur de 100 / 12 = 8.3333333333%.

Solution :
.col-1 {
  flex-basis: 8.3333333333%;
  box-sizing: border-box;
}
.col-2 {
  flex-basis: 16.6666666667%;
  box-sizing: border-box;
}
.col-3 {
  flex-basis: 25%;
  box-sizing: border-box;
}
.col-4 {
  flex-basis: 33.3333333333%;
  box-sizing: border-box;
}
.col-5 {
  flex-basis: 41.6666666667%;
  box-sizing: border-box;
}
.col-6 {
  flex-basis: 50%;
  box-sizing: border-box;
}
.col-7 {
  flex-basis: 58.3333333333%;
  box-sizing: border-box;
}
.col-8 {
  flex-basis: 66.6666666667%;
  box-sizing: border-box;
}
.col-9 {
  flex-basis: 75%;
  box-sizing: border-box;
}
.col-10 {
  flex-basis: 83.3333333333%;
  box-sizing: border-box;
}
.col-11 {
  flex-basis: 91.6666666667%;
  box-sizing: border-box;
}
.col-12 {
  flex-basis: 100%;
  box-sizing: border-box;
}

CSS : Ajoutez une gouttière entre les cellules de votre grille.

Aperçu de la grille avec gouttières
Aperçu de la grille avec gouttières
Solution du conteneur :
.container-cols .row {
  display: flex;
  gap: 5px;
}
Solution complète :

Consultez ce code créé par crego (@crego) sur le site CodePen.

SCSS : Si vous connaissez la syntaxe SCSS, créez un mixin pour pouvoir gérer la grille avec le nombre de colonnes et la largeur de la gouttière en paramètres.

Solution :

Consultez ce code créé par crego (@crego) sur le site CodePen.

S’abonner
Notification pour
guest

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.

0 Commentaires
Le plus ancien
Le plus récent Le plus populaire
Commentaires en ligne
Afficher tous les commentaires