L'un des changements majeurs dans le futur Joomla 4 est l'adoption de CSS Grid

CSS Grid révolutionne l'industrie de la conception de sites web et va rapidement devenir une norme sur Internet.

Joomla conservera probablement Bootstrap 4 pour des raisons de rétrocompatibilité. Cependant, le futur est clair. À long terme, l'avenir de la conception du frontend de Joomla sera CSS Grid. Vous pouvez déjà voir CSS Grid en action dans Cassiopeia, le template par défaut de Joomla 4.

Dans ce blog, je vais vous aider à maîtriser les concepts clés qui se cachent derrière CSS Grid.

CSS Grid est une nouvelle technologie CSS dans sa première spécification. Ce système permet aux concepteurs et aux développeurs de placer des éléments (éléments HTML) dans une mise en page basée sur une grille en utilisant des colonnes et des lignes.

Cela peut ressembler à un système de tableau, mais CSS Grid offre bien plus de fonctionnalités qu’un simple tableau.

CSS Grid vous permet de disposer les éléments indépendamment de leur ordre dans le document source.

Partie 1. Le concept du CSS Grid

Le concept de base de CSS Grid est de prendre un élément HTML et de le diviser en lignes et colonnes afin de le transformer en une grille.

Vous pouvez ensuite placer les enfants directs de cet élément n'importe où sur la grille.

Les éléments de la grille doivent être des enfants directs du conteneur principal de la grille. Ce sont les éléments disponibles pour être positionnés sur la grille.

Regardez l'image ci-dessous.

Si vous déclarez le conteneur div avec la grille class=”main”, seuls les éléments header et body seront considérés comme des éléments de la grille.

Les éléments <h1> et <article> sont contenus dans les éléments de la grille mais ne sont pas eux-mêmes des éléments de la grille.

01

Un élément de grille peut également être un conteneur de grille. Cela signifie que vous pouvez imbriquer des grilles à l'intérieur de grilles, indéfiniment.

Vous pouvez également insérer un conteneur flexible dans un conteneur de la grille ou vice versa.

Cela offre beaucoup de flexibilité lors de la conception.

Vous pouvez mettre en forme tous les éléments d'une grille car ils sont tous déclarés dans le code HTML de votre document.

Vous ne serez pas en mesure de styliser la grille elle-même - elle existe uniquement en CSS.

Partie 2. Terminologie de base du CSS Grid

Ligne de la grille

C'est l'unité la plus basique de la grille. Les composants d'une grille sont définis en plaçant une ou plusieurs lignes de grille.

Les lignes peuvent être référencées par un numéro ou vous pouvez même leur donner un nom personnalisé.

Ceci est très pratique lorsque vous travaillez avec des mises en page plus complexes.

02

Conteneur de grille

C'est l'élément d'emballage pour tous les éléments de la grille. Vous définissez un conteneur de grille avec une propriété CSS.

Exemple :

.main {
display: grid;
}


03

Cellule de grille

Une cellule de grille est la plus petite surface entourée de 4 lignes de la grille. Elle est analogue à une cellule de feuille de calcul.

04

Zone de grille

La zone de grille est une forme rectangulaire (ou carrée) composée de plusieurs cellules de grille.

Notez que le module CSS Grid actuel vous permet de définir des zones de forme rectangulaire ou carrée, mais vous ne pourrez pas en définir de forme en "L" par exemple.

05

Grid Track

Grid Track est un terme générique pour identifier les lignes ou les colonnes.

06

Espace de grille

L’espace de grille est l'espace entre les cellules de grille ou les zones de grille. Il correspond au margin.

Vous ne pouvez pas placer de contenu dans l'espace de grille. Par défaut, l’espace de grille est de 0, ce qui signifie qu'il n'y a pas de séparation entre les cellules d'une grille.

L'écart est défini avec la propriété CSS grid-gap.

07

Partie 3. Création de votre première grille CSS

Maintenant que vous avez appris les concepts de base du CSS Grid, il est temps de construire votre première grille.

La grille contiendra 9 éléments.

Chacun de ces éléments sera présenté dans une grille 3x3.

Chaque colonne aura une largeur de 100px.

Les éléments de la grille seront séparés les uns des autres par un écart de 20px.

Le code HTML

<div class="container">
<div class="item">1</div>
<div class="item">2</div>
<div class="item">3</div>
<div class="item">4</div>
<div class="item">5</div>
<div class="item">6</div>
<div class="item">7</div>
<div class="item">8</div>
<div class="item">9</div>
</div>

Comme vous pouvez le voir, ce n'est qu'un div contenant 9 div.

Le code CSS

Ajoutez un style de base :

/* GLOBAL STYLES */

* {
box-sizing: border-box;
}

body {
background-color: #AAA;
background-size: 340px, auto;
margin: 50px;
}

/* Each item in the grid contains numbers */
.item {
/* Center the contents of the grid items. Making each grid item a Flex Container */
display: flex;

/* Horizontal and Vertical centering */
justify-content: center;
align-items: center;
border: 5px solid #87b5ff;
border-radius: 3px;
font-size: 2em;
font-family: sans-serif;
font-weight: bold;
background-color: #1c57b5
}

Chaque élément à l'intérieur du conteneur a été défini comme un conteneur flexible. Cela nous permet de centrer facilement le contenu horizontalement et verticalement.

Ce conteneur flexible fonctionnera à l'intérieur d'un conteneur de la grille sans problèmes. La sortie dans votre navigateur ressemblera à l'image ci-dessous.

08

Il est temps maintenant de déclarer le conteneur de la grille :

.container {
display: grid;
}

Ce code transforme le div avec la classe container en un conteneur de grille et tous les éléments enfants à l'intérieur en éléments de la grille.
Si vous regardez votre navigateur, vous ne verrez aucun changement.

C'est parce que vous avez déjà défini un conteneur de grille, mais vous n'avez pas encore spécifié comment les éléments à l'intérieur de ce conteneur seront placés.

Ajoutez la ligne suivante au code et enregistrez le fichier :

.container {
display: grid;
grid-template-columns: 100px 100px 100px;
}

La propriété grid-template-columns vous permet de définir les colonnes de la grille.

Dans cet exemple très basique, vous venez de définir explicitement 3 colonnes. Chacune de ces colonnes aura une largeur de 100px.

Notez que vous n'avez pas défini les lignes dans la grille. Celles-ci ont été ajoutées de manière implicite par le navigateur.

En règle générale, si vous définissez les colonnes ou les lignes d'une grille, cela s'appelle "Explicit Grid". Si, par contre, les éléments de la grille sont placés automatiquement par le navigateur, on appelle cela "Implicit Grid".

09

Notez également qu'il n'y a pas de séparation entre les éléments de la grille.

Cette séparation est ajoutée avec les propriétés grid-column-gap et grid-row-gap.

Il y a un raccourci qui intègre les deux propriétés : grid-gap.

.container {
display: grid;
grid-template-columns: 100px 100px 100px;
grid-gap: 20px;
}

10

Vous pouvez utiliser d'autres types d'unités de mesure en plus des pixels.

Toutes mes félicitations ! Vous venez de créer votre première grille CSS !

Partie 4. CSS Grid dans Joomla 4

Maintenant que vous connaissez CSS Grid, cliquez sur ce lien pour le voir en action dans Cassiopeia, le template par défaut de Joomla 4.

Tout le code lié au CSS Grid dans Cassiopeia est enveloppé par la règle @supports. Elle vérifie si le navigateur du visiteur prend en charge une propriété CSS spécifique et sa valeur. Dans le fichier joint, Joomla s’assure que le navigateur peut afficher ce code : display: grid.

@supports (display: grid) { }

Si le navigateur est trop ancien pour prendre en charge CSS Grid, le CSS ne sera pas exécuté.

Cette page liste les navigateurs supportant le CSS Grid.

Cet article est une libre traduction de Everything Joomla Users Need to Get Started with CSS Grid par Jorge Montoya pour Joomlashack.

L'auteur : un expert à votre service
Jean-Charles Gautard
Nom : Jean-Charles Gautard
Consultant, formateur et intégrateur web depuis plus de 10 ans, je mets mon expertise digitale au service des professionnels amorçant leur transformation digitale. A la recherche d'une stratégie digitale avec le CMS Joomla ? Besoin de conseils ? d'une formation ? d'un site Internet ou Intranet ? Contactez-nous

Articles qui devraient vous intéresser

Phoca Gallery 3.2.4 : une galerie Joomla pour vos photos Phoca Gallery 3.2.4 : une galerie Joomla pour vos photos
Résumé du test Intuitivité : Stabilité : Support : Sécurité : Mises à jour : Interropérabilité :...
Réussir votre entreprise sur Internet grâce à Joomla Réussir votre entreprise sur Internet grâce à Joomla
Ce guide aurait pu aussi s'intituler « Développer l'entreprise de mes clients sur Internet grâce à Joomla», «...

Commentaires (0)

Il n'y a pas encore de commentaire pour cet article.

Ajouter vos commentaires

  1. Insérer un commentaire en tant qu'invité.
Pièces jointes (0 / 3)
Share Your Location
Contact
Dernier article sur la même thématique
Migration vers Joomla4 : avantages et bénéficesMigration vers Joomla4 : avantages et bénéfices
Nous considérons chez NosyWeb que la migration vers Joomla4 est une nouvelle étape pour la vie de votre site, bien plus largement que la simple évolution de version du CMS. En effet, la migration...