Grid Layout CSS28

Cet exercice consiste à explorer les possibilités offertes par le système de grille de CSS.

Consignes de l’exercice

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

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

Solution HTML

Voici la structure de base d’une page HTML.

HTML
<!doctype html><html lang="fr">    <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-css28.css. Si vous connaissez le langage SCSS, utilisez-le.

Associez le fichier grid-css28.css à la page HTML.

Solution HTML

Le code ci-dessous doit être placé dans l’en-tête <head> de la page HTML. Il est nécessaire de personnaliser la valeur de l’attribut href afin qu’elle corresponde à l’emplacement et au nom du fichier CSS à lier.

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

Dans la page HTML, ajoutez un élément <div></div> accompagné de 5 enfants de type <div></div> et contenant chacun le texte « Élément x » où x est le numéro de l’enfant.

Solution HTML
HTML
<div>    <div>Élément 1</div>    <div>Élément 2</div>    <div>Élément 3</div>    <div>Élément 4</div>    <div>Élément 5</div></div>

Ajoutez toutes les classes nécessaires pour la manipulation des différents éléments HTML ajoutés à la question précédente. Vous devez pouvoir manipuler les enfants collectivement ou individuellement.

Solution HTML
HTML
<div class="container">    <div class="item item1">Élément 1</div>    <div class="item item2">Élément 2</div>    <div class="item item3">Élément 3</div>    <div class="item item4">Élément 4</div>    <div class="item item5">Élément 5</div></div>

En CSS, appliquez une couleur d’arrière-plan différente pour chacun des éléments enfants.

Solution CSS
CSS
.item1 {    background-color: #30b16d;}.item2 {    background-color: #2a9d60;}.item3 {    background-color: #258954;}.item4 {    background-color: #1f7548;}.item5 {    background-color: #1a613b;}
Solution SCSS
SCSS
$color: #35c579;@for $i from 1 through 5 {    .item#{$i} {        background-color: darken($color, $i * 5%);    }}

En utilisant le système de grille de CSS, sans utiliser de pistes implicites et en réglant la hauteur des lignes sur auto, reproduisez la disposition suivante :

Solution CSS
CSS
.container {    display: grid;    grid-template-columns: repeat(3, 1fr);    grid-template-rows: repeat(3, auto);}.item2 {    grid-column-start: 3;}.item3 {    grid-row-start: 2;    grid-column-start: 2;}.item4 {    grid-row-start: 3;    grid-column-start: 1;}.item5 {    grid-row-start: 3;    grid-column-start: 3;}

Ajoutez des gouttières à la grille.

Propriété CSS

gap

Solution CSS
CSS
.container {    display: grid;    grid-template-columns: repeat(3, 1fr);    grid-template-rows: repeat(3,auto);    gap: 1rem 1rem;}

Ajustez le réglage des alignements horizontaux des éléments pour obtenir le résultat suivant :

Propriété CSS

justify-items justify-self

Solution CSS
CSS
.container {    display: grid ;    grid-template-columns: repeat(3, 1fr) ;    grid-template-rows: repeat(3,auto);    gap: 1rem 1rem;    justify-items: left;}.item2 {    grid-column-start: 3;    justify-self: right;}.item3 {    grid-row-start: 2;    grid-column-start: 2;    justify-self: center;}.item4 {    grid-row-start: 3;    grid-column-start: 1;}.item5 {    grid-row-start: 3;    grid-column-start: 3;    justify-self: right;}

Ajoutez du contenu dans l’élément 5 afin qu’il s’affiche sur plusieurs lignes.

Ajustez le réglage de la grille pour obtenir le résultat suivant :

Solution CSS
CSS
.container {    display: grid;    grid-template-columns: repeat(3, 1fr);    grid-template-rows: repeat(3, 1fr);    gap: 1rem 1rem;    justify-items: left;}

Ajustez les réglages de la grille pour utiliser des rangées implicites.

Solution CSS
CSS
.container {    display: grid;    grid-template-columns: repeat(3, 1fr);    grid-auto-rows: 1fr;    gap: 1rem 1rem;    justify-items: left;}

Modifiez la grille pour lui ajouter des zones nommées et utilisez-les pour obtenir la mise en forme suivante :

Solution CSS
CSS
.container {    display: grid;    grid-template-areas: "zone1 zone1 zone2"                         "zone3 zone3 zone3"                         "zone4 zone5 zone5";    grid-template-columns: repeat(3, 1fr);    grid-auto-rows: 1fr;    gap: 1rem 1rem;}.item1 {    grid-area: zone1 ;}.item2 {   grid-area: zone2 ;}.item3 {    grid-area: zone4 ;}.item4 {    grid-area: zone5 ;}.item5 {    grid-area: zone3 ;}

Modifiez le réglage des lignes implicites pour qu’elles aient une hauteur minimale de 50px, mais qu’elles puissent quand même s’agrandir si nécessaire.

Solution CSS
CSS
.container {    display: grid;    grid-template-areas: "zone1 zone1 zone2"                         "zone3 zone3 zone3"                         "zone4 zone5 zone5";    grid-template-columns: repeat(3, 1fr);    grid-auto-rows: minmax(50px, auto);    gap: 1rem 1rem;}

Sauf mention contraire*, l’article Grid Layout CSS28 et son contenu par Julien Crego sont mis à disposition selon les termes de la licence Creative Commons

Licence Creative Commons

Attribution – Pas d’Utilisation Commerciale – Partage dans les Mêmes Conditions 4.0 International

Cette licence vous permet de remixer, arranger, et adapter cette œuvre à des fins non commerciales tant que vous créditez la source en citant le nom des auteurs et que les nouvelles œuvres sont diffusées selon les mêmes conditions.

* Cette notice est intégrée automatiquement à la fin de chaque article de ce site.

Commentaires

S’abonner
Notification pour
guest

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur la façon dont les données de vos commentaires sont traitées.

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