Grille

Affichage Grille

Le concept de Grille apparait mais n'est pas encore complètement implanté dans tous les navigateurs.

Le module CSS Grid Layout ajoute à CSS une grille à deux dimensions. Les grilles peuvent être utilisées pour agencer des pages entières ou de petits éléments d'interface.

Une grille est un ensemble de lignes horizontales et verticales qui se croisent – les premières définissant les rangées, et les secondes les colonnes. Les éléments sont placés sur la grille en fonction de ces rangées et colonnes. Les fonctionnalités sont les suivantes :

Syntaxe

Display:grid

Pour le conteneur, la syntaxe est :

Display: grid | inline-grid

Tous les enfants directs sont maintenant des éléments de grille.

Les propriétés grid-template-columns et grid-template-rows permettent de définir des colonnes et des rangées. Celles-ci définissent les pistes. Une piste est l'espace entre deux lignes d'une grille.

syntaxe

Exemple

On peut définir une taille pour les pistes de la grille implicite grâce aux propriétés grid-auto-rows et grid-auto-columns.

Les gouttières entre les cellules sont définies à l'aide des propriétés grid-column-gap et grid-row-gap, ou de la propriété raccourcie grid-gap.

Unité : fr

Les pistes peuvent être définies à l'aide de n'importe quelle unité de mesure. Les grilles proposent aussi une nouvelle unité de mesure pour aider à la création de pistes flexibles. Cette unité, fr, représente une fraction de l'espace disponible dans le conteneur de la grille.

Fonctions

repeat()

Pour les grilles comprenant de nombreuses pistes on peut utiliser la notation repeat() pour répéter toute ou une partie des pistes définies.

syntaxe

Exemple

minmax()

Cela permet de définir une valeur minimum et une valeur maximum.

minmax(valeur_min , valeur_max)

Exemple : grid-auto-rows: minmax(100px, auto);

La hauteur deslignes sera au minimum de 100px et si la hauteur doit augmenter, elle s'adaptera au contenu (auto).

Organisation de la grille

Chaque élément peut être placé en fonction des colonnes et des lignes en indiquant l'endroit où il commence et soit l'endroit où il finit, soit sa taille.

grid-column: colonne_début / colonne_fin

grid-column: colonne_début / span nombre_de_colonnes

grid-column: span nombre_de_colonnes / colonne_fin

syntaxe

exemple

La classe maitre commence à la colonne 1 et se termine avant la colonne 4

La classe perche commence à la colonne 2 et s'étend (span) sur 2 colonnes

La classe fromage s'étend sur 2 colonnes et se termine avant la colonne 5

Idem pour les lignes en remplaçant column par row

Il est possible de combler les vides avec la syntaxe : grid-auto-flow: dense;

syntaxe

exemple

Amélioration

Zones

Il est possible de définir des zones et ensuite de répartir ces zones simplement :

Définir les zones : grid-area: nom de la zone

Répartir les zones : grid-template-areas: répartition des zones

syntaxe

exemple

Alignement

Écriture verticale : writing-mode: vertical-lr ou writing-mode: vertical-rl

Alignement vertical et horizontal :

display: flex ; align-items: center ; justify-content: center;

Remarque

La Grille a principalement pour but de gérer la structure de la page en gérant des blocs dans les 2 dimensions via les colonnes et les lignes.

La boîte flexible a principalement pour but de gérer le contenu des blocs et ne sait gérer que dans une dimension.

Fichiers d'exemple

Display grid simplement

Organisation de la grille

Amélioration