Pepper & Carrot : Grid CSS29

Cet exercice consiste à composer les différentes pages d’une bande dessinée en utilisant le système de grille de CSS.

Les images utilisées pour cet exercice sont issues du webcomic Pepper & Carrot de David Revoy distribué sous licence Creative Commons Attribution 4.0.

Lisez l’épisode complet : Le concours de potion

Consignes de l’exercice

Créez un dossier de travail (dossier racine) sous le nom exercice-css29.

Dans votre dossier racine, créez un nouveau fichier HTML sous le nom grid-css29.html contenant la structure de base d’une page web.

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

    </body>
</html>

Dans votre dossier racine, créez un nouveau fichier CSS sous le nom grid-css29.css contenant la structure de base d’une page web. Si vous connaissez le langage SCSS, utilisez-le.

Associez le fichier grid-css29.css à la 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">

Téléchargez toutes les images nécessaires pour l’exercice et placez-les dans un dossier nommé images à l’intérieur de votre dossier racine.

Aide pour télécharger un fichier :
– Pour télécharger un fichier, faites un clic droit sur le fichier désiré et choisissez l’option Télécharger.
– Pour télécharger plusieurs fichiers, sélectionnez les fichiers désirés puis cliquez sur Télécharger les sélectionnés. Les fichiers seront téléchargés sous la forme d’une archive .zip. Veillez à bien extraire le contenu de l’archive avant de commencer à travailler.

En utilisant le système Grid de CSS, construisez la première page de la BD en respectant les consignes suivantes :

  • Les dimensions des images sont indiquées dans les noms des fichiers.
  • Les gouttières sont réglées à 16px.
Solution HTML :
<div class="page page1">
    <img src="images/page01_img01_800x678.jpg" class="img1">
    <img src="images/page01_img02_800x212.jpg" class="img2">
    <img src="images/page01_img03_800x212.jpg" class="img3">
</div>
Solution CSS :
.page {
  border: 1px solid #aaa;
  display: grid;
  gap: 16px ;
  width: 800px;
  margin: 15px;
  padding: 15px;
}
.page1 {
    grid-template-columns: 1fr;
    grid-template-rows: repeat(3, auto);
}

En utilisant le système Grid de CSS, construisez la seconde page de la BD en respectant les consignes suivantes :

  • Les dimensions des images sont indiquées dans les noms des fichiers.
  • Les gouttières horizontales sont réglées à 16px et les gouttières verticales sont réglées à 12px.
Solution HTML :
<div class="page page2">
    <img src="images/page02_img01_800x558.jpg" class="img1">
    <img src="images/page02_img02_394x195.jpg" class="img2">
    <img src="images/page02_img04_800x349.jpg" class="img4">
</div>
Solution CSS :
.page {
  border: 1px solid #aaa;
  display: grid;
  gap: 16px 12px;
  width: 800px;
  margin: 15px;
  padding: 15px;
}
.page2 {
  grid-template-columns: 1fr 1fr;
  grid-template-rows: repeat(3, auto);
}
.page2 .img1, 
.page2 .img4 {
  grid-column-end: span 2;
}
Solution SCSS :
$gap-column: 12px ;
$gap-row: 16px ;

.page {
    border: 1px solid #aaa;
    display: grid;
    gap: $gap-row $gap-column ;
    width: 800px;
    margin: 15px;
    padding: 15px;
}
.page2 {
    grid-template-columns: 1fr 1fr;
    grid-template-rows: repeat(3, auto);
    .img1, .img4 {
        grid-column-end: span 2;
    }
}

En utilisant le système Grid de CSS, construisez la troisième page de la BD en respectant les mêmes consignes que précédemment.

Solution CSS :
.page {
  border: 1px solid #aaa;
  display: grid;
  gap: 16px 12px;
  width: 800px;
  margin: 15px;
  padding: 15px;
}
.page3 {
  grid-template-columns: 216px 208px auto;
  grid-template-rows: repeat(4, auto);
}
.page3 .img1, 
.page3 .img2, 
.page3 .img6 {
  grid-column-end: span 3;
}
Solution SCSS :
$gap-column: 12px ;
$gap-row: 16px ;

.page {
    border: 1px solid #aaa;
    display: grid;
    gap: $gap-row $gap-column ;
    width: 800px;
    margin: 15px;
    padding: 15px;
}
.page3 {
    grid-template-columns: 216px 208px auto ;
    grid-template-rows: repeat(4, auto);
    .img1, .img2, .img6 {
        grid-column-end: span 3;
    }
}

En utilisant le système Grid de CSS, construisez la quatrième et dernière page de la BD en respectant les mêmes consignes que précédemment.

Solution des hauteurs des lignes :
Solution CSS :
.page {
  border: 1px solid #aaa;
  display: grid;
  gap: 16px 12px;
  width: 800px;
  margin: 15px;
  padding: 15px;
}
.page4 {
  grid-template-columns: 294px 254px auto;
  grid-template-rows: 134px 260px 25px 282px auto;
}
.page4 .img2 {
  grid-row-start: 2;
  grid-row-end: span 2;
}
.page4 .img3 {
  grid-row-start: 1;
  grid-column-start: 2;
  grid-column-end: span 2;
}
.page4 .img4 {
  grid-row-start: 1;
  grid-column-start: 3;
  grid-column-end: span 2;
}
.page4 .img5 {
  grid-row-start: 4;
}
.page4 .img6 {
  grid-row-start: 3;
  grid-row-end: span 3;
  grid-column-start: 2;
  grid-column-end: span 2;
}
.page4 .img7 {
  grid-row-start: 5;
  grid-column-start: 1;
  grid-column-end: span 3;
}
Solution SCSS :
$gap-column: 12px ;
$gap-row: 16px ;

.page {
    border: 1px solid #aaa;
    display: grid;
    gap: $gap-row $gap-column ;
    width: 800px;
    margin: 15px;
    padding: 15px;
}
.page4 {
    grid-template-columns: 294px 254px auto ;
    grid-template-rows: 134px (410px - 134px - $gap-row) (134px + 301px - 410px) 282px auto  ;
    .img2 {
        grid-row-start: 2;
        grid-row-end: span 2;
    }
    .img3 {
        grid-row-start: 1;
        grid-column-start: 2;
        grid-column-end: span 2;
    }
    .img4 {
        grid-row-start: 1;
        grid-column-start: 3;
        grid-column-end: span 2;
    }
    .img5 {
        grid-row-start: 4;
    }
    .img6 {
        grid-row-start: 3;
        grid-row-end: span 3 ;
        grid-column-start: 2;
        grid-column-end: span 2;
    }
    .img7 {
        grid-row-start: 5;
        grid-column-start: 1;
        grid-column-end: span 3;
    }
}

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