Gagnez du temps avec la propriété abrégée CSS «grid»

Dans les tutoriels précédents, nous avons appris à configurer une grille en définissant ses propriétés explicites (comme Grille-modèle-colonnes et grille-template-zones) et même certaines de ses propriétés implicites (comme colonnes auto-grille). Dans ce tutoriel, nous allons examiner la propriété abrégée la grille qui traite rapidement de tout ce qui précède en une seule déclaration.

Votre grille, en deux lignes faciles

Comme d'habitude, commencez par déclarer affichage: grille; sur votre conteneur. Ensuite, utilisez le la grille propriété pour disposer vos lignes, puis vos colonnes:

.grid-1 display: grid; grille: 100px auto 300px / répétition (2, 1fr) 100px; 

L'instruction ci-dessus indique que nous voulons trois lignes explicites de 100px, auto et 300px. Et (en utilisant le répéter() fonction) deux colonnes de 1fr, puis une de 100px. C'est exactement la même chose que cette version plus longue:

.grid-1 display: grid; grid-template-rows: 100px auto 300px; Grille-modèle-colonnes: répéter (2, 1fr) 100px; 

Les deux déclarations nous donnent ceci:

Ajouter des valeurs implicites au mélange

Nous demandons à Grid d'utiliser les valeurs implicites au-delà des valeurs explicites définies. dans le la grille En abrégé, nous ne pouvons pas combiner les deux, nous devons donc faire un choix. Jetez un coup d'oeil à ceci, par exemple:

.grid-1 display: grid; grille: flux automatique 100px / 1fr 100px; 

Dans ce cas, nous avons bloqué des colonnes explicites (une de 1fr, une autre de 100px) mais nos lignes utilisent une forme abrégée de écoulement automatique et lignes-grille automatique. Ça dit “Lorsque vous devez ajouter plus de pistes à la grille, ajoutez-les sous forme de lignes. Et faites en sorte qu’elles atteignent 100 pixels de haut. C'est pareil que ça:

.grid-1 display: grid; Grille-modèle-colonnes: 1fr 100px; grid-auto-flow: row; grid-auto-rows: 100px; 

C'est un comportement plutôt par défaut, mais nous constatons un changement plus important si nous demandons plutôt à notre grille implicite d'utiliser des colonnes supplémentaires:

.grid-1 display: grid; grille: 100px 300px / flux automatique 100px; 

Cela nous donne deux lignes de 100px et 300px, puis définit efficacement grid-auto-flow: colonne;. C'est pareil que:

.grid-1 display: grid; grid-template-rows: 100px 300px; grid-auto-flow: colonne; grilles-auto-colonnes: 100px; 

Maintenant, l'algorithme de placement automatique place les éléments de haut en bas, en ajoutant des colonnes à droite lorsqu'il manque d'espace:

Remarque: nous ne pouvons pas déclarer flux automatique sur les deux rangées et colonnes, cela ne fonctionnera pas.

Le mot clé d'emballage

Si vous repensez à notre tutoriel Comprendre la grille CSS «Algorithme d'auto-placement», vous vous en souviendrez, nous avons discuté clairsemé et dense; mots-clés décrivant la manière dont les éléments sont regroupés dans une grille. Ceux-ci peuvent également être utilisés aux côtés flux automatique, comme ça:

.grid-1 display: grid; grille: 100px 300px / flux auto dense 100px; 

Zones de modèle de grille

Les zones de gabarit permettent de nommer des zones de notre réseau, de manière presque représentative visuellement. Dans sa forme la plus simple, nous utiliserions simplement la grille pour décrire nos zones de modèles et rien d'autre:

.grid-1 display: grid; grille: "en-tête en-tête" "barre latérale principale" "pied de page pied de page pied de page"; 

Nous indiquerons ensuite quelle zone chaque élément de la grille remplit, comme ceci: 

.item-1 grid-area: header; 

Si vous vous souvenez de notre didacticiel des zones de modèle d'origine, nous avions quelques détails supplémentaires pour nous donner les dimensions des colonnes et des lignes:

.grid-1 display: grid; Grille-modèle-colonnes: répéter (3, 1fr); grid-template-rows: 80px 180px 80px; grid-template-areas: "en-tête en-tête" "barre latérale principale" "pied de page pied de page pied de page"; 

Nous pouvons le faire aussi, comme suit:

.grid-1 display: grid; grille: "en-tête en-tête" 80px "barre latérale principale" 180px "footer footer footer" 80px / 1fr 1fr 1fr; 

Nous ajoutons les largeurs de colonne après la barre oblique (le répéter() la fonction ne fonctionnera pas dans ce cas, mais je ne sais pas pourquoi). Et nous ajoutons les hauteurs de ligne en ligne après les déclarations de surface. C'est ce que nous finissons avec:

Conclusion

Ce tutoriel aurait dû vous expliquer comment le logiciel la grille sténographie fonctionne bien. Jouez avec, voyez quels autres aspects du module CSS Grid vous pouvez utiliser, et dites-nous combien de temps cela vous fait gagner!

Tutoriels et liens pertinents

  • syntaxe abrégée de la grille sur MDN
  • Spécifications de sténographie de grille sur le W3C