Comment créer une mise en page de carte à l'aide de CSS Grid Layout

Publié: 2023-02-12

Note de l'éditeur : cet article invité a été écrit par Abbey Fitzgerald, ingénieur logiciel UX et concepteur Web qui aime l'art de créer du code.

Les mises en page de grille CSS changent la façon dont les concepteurs Web travaillent, permettant une manière plus efficace de mettre en page le contenu du site Web.

Elle était attendue depuis longtemps, mais finalement cette approche a vraiment pris son envol, et dans de nombreux cas, elle est en production. Il a révolutionné la façon dont les sites Web sont conçus et une fois que les concepteurs auront compris, cela donnera plus de flexibilité aux mises en page Web.

Si vous avez essayé de concevoir avec CSS Grid et que vous avez consulté des didacticiels sur le Web, vous avez peut-être trouvé des informations relatives à une approche de mise en page globale. Des choses comme : en-tête, contenu, pied de page, etc.

Cependant, CSS Grid peut également être utile pour d'autres détails de site Web, tels que les cartes. Les mises en page de cartes sont un moyen courant d'afficher du contenu, et elles peuvent être créées efficacement avec CSS Grid. En utilisant cette méthode, les zones de contenu de la carte sont facilement reproductibles, peuvent être visualisées sur de nombreux types d'appareils différents et la taille est facilement contrôlée.

Outils de mise en page de grille CSS

Au fur et à mesure que vous avancez, vous voudrez inspecter les éléments de la page. Firefox dispose d'excellents outils de développement pour voir les zones de la grille. À l'aide des outils de développement de Firefox, vous pouvez voir une superposition qui décrit la grille. Firefox Developer Edition a également cette capacité.

mise en page par volant mise en page de la carte mise en page de la grille css comment didacticiel outils d'inspecteur

Sélectionnez la grille de superposition que vous souhaitez afficher (selon votre conception, il peut y en avoir plusieurs). Les paramètres d'affichage de la grille vous permettent de regarder de plus près en affichant le numéro de ligne, les noms de zone et la façon dont vous souhaitez que les lignes s'étendent. Cela vous sera utile lors de la conception.

Cartes simples avec disposition en grille CSS

Si vous débutez avec CSS Grid, vous voudrez approfondir les bases et créer une mise en page de grille CSS simple. Les cartes sont un excellent moyen d'afficher du contenu, ainsi qu'un élément d'interface utilisateur intéressant et intuitif à utiliser. Elles offrent également un excellent format aux utilisateurs pour numériser rapidement le contenu et interagir avec ce qui les intéresse le plus. Les cartes permettent également aux concepteurs de formater le contenu de manière visuellement attrayante, avec de superbes images, du contenu d'introduction, des liens et bien plus encore !

Cartes et mise en page globale

En aparté, il est important de savoir que CSS Grid n'a pas besoin d'être utilisé sur une mise en page entière. Des grilles peuvent être utilisées dans certaines zones de la page si nécessaire. Puisqu'il s'agit d'un didacticiel sur les dispositions de cartes, une approche de grille peut être utilisée exclusivement ici même si le reste de la page n'utilise pas CSS Grid. Tant que la zone de la grille est définie et display: grid; est déclaré sur le wrapper, cette approche peut être utilisée.

Travailler avec un nombre défini de cartes

Dans certains cas, il est facile de prévoir un nombre défini de cartes. Avec une quantité de contenu définie, le nombre de cartes restera le même. Par exemple, il peut y avoir quatre cartes qui expliquent les offres commerciales, chaque offre sur sa propre carte.

mise en page par volant mise en page de la carte mise en page de la grille css comment tutoriel quatre rangées de cartes

Pour cet exemple (et les autres), tous les éléments .card sont à l'intérieur d'un élément conteneur .cards . Pour y parvenir, c'est assez simple.

 [css] .cards { display: grid; grid-template-columns: repeat(3, 1fr); grid-auto-rows: auto; grid-gap: 1rem; }   .card { border: 2px solid #e7e7e7; border-radius: 4px; padding: .5rem; } [/css]

Il est important d'afficher la valeur de .cards sur la grille. Sans cela, les zones de grille ne peuvent pas être créées. L'étape suivante consiste à définir les grid-template-columns et à choisir le style. Le style de carte réel sera déclaré avec une classe de .card .

mise en page par volant mise en page de la carte mise en page de la grille css comment tutoriel classes de cartes

Dans cet exemple, vous verrez plusieurs balises d'article avec la classe .card . A voir sur Codepen.

Répétez pour définir le nombre de cartes

C'est là que les cartes commencent à prendre forme. Pour créer une quantité fluide de colonnes par ligne, repeat est utilisé avec la fonction repeat() . Cette fonction prend deux arguments : le nombre de fois à répéter et la valeur à répéter.

mise en page par volant mise en page de la carte mise en page de la grille css comment faire un tutoriel trois rangées de cartes

Par exemple, grid-template-columns: repeat(3, 200px); calcule en grid-template-columns: 200px 200px 200px; .

Unité fractionnaire

Vous verrez que l'exemple de code utilise un "fr." Qu'est-ce que c'est exactement ? Cette unité de mesure est devenue populaire avec CSS Grid. Fr signifie « unité fractionnaire » et 1fr occupe 1 partie de l'espace disponible. Il permet de simplifier les calculs d'espace.

Les unités fractionnaires peuvent être utilisées seules ou elles vous permettent de spécifier une largeur de 1fr et vous pouvez également ajouter des éléments enfants. Plusieurs fr seront également partagés entre tous les éléments enfants.

mise en page par volant mise en page de la carte mise en page de la grille css comment faire un tutoriel un groupe fr

Différentes unités fractionnaires peuvent être spécifiées. Par exemple, lorsque les colonnes de la grille sont 1fr 2fr 1fr , deux unités fractionnaires occupent deux fois plus d'espace qu'une unité fractionnaire.

mise en page par volant d'inertie mise en page de la carte css mise en page de la grille comment tutoriel groupe fr mixte

Répétez l'opération pour un nombre dynamique de cartes

Dans certains cas, vous ne connaissez peut-être pas le nombre de cartes nécessaires, donc la planification d'un nombre défini ne fonctionnera pas. La même approche sera adoptée que pour la répétition, mais il est possible d'en adapter autant que nécessaire avec le remplissage automatique.

 [css] grid-template-columns: repeat(auto-fill, 250px); [/css]

Les déclarations de largeur sont nécessaires en plus du auto-fill . Gardez à l'esprit qu'avec une valeur px, il peut y avoir un espace à droite lorsqu'il n'y a pas assez pour que la carte rentre, mais cela n'a pas à être le cas, comme vous le verrez un peu plus tard.

mise en page par volant mise en page de la carte mise en page de la grille css comment tutoriel rangée de cartes avec espace

Minmax pour plus de contrôle sur la largeur de la carte

Minmax est la solution parfaite, car une unité fractionnaire à elle seule rendrait les cartes pleine largeur. L'ajout à la fois de répétition et d'un minmax à la déclaration de style éliminera l'espace vide possible et les cartes apparaîtront plus fluides.

 [css] grid-template-columns: repeat(auto-fill, minmax(200px, 1fr)); [/css]
mise en page par volant mise en page de la carte mise en page de la grille css comment tutoriel trois cartes pleine largeur
Cette déclaration indiquera au navigateur de tenir autant de colonnes en fonction des tailles spécifiées dans la syntaxe de répétition.

Les colonnes s'adapteront toujours à la grille et les cartes feront au moins 200px. Lorsque l'espace minimum ne correspond pas parfaitement à l'espace, c'est là que la largeur maximum entre en jeu. Lorsqu'une autre carte de 200 pixels de largeur ne rentre pas, les autres cartes seront plus grandes que 200 pixels, elles s'étirent donc pour remplir la ligne avec plus d'espace et elles seront réparties de manière égale. [article id = »21612″ align = »right »]

Mobile

Puisque les cartes les plus petites et les plus grandes ont été prévues, c'est le bon moment pour parler de mobile. Les cartes fonctionnent bien sur les appareils plus grands et plus petits car le contenu est en morceaux digestibles, et les cartes peuvent facilement évoluer vers le haut et vers le bas. CSS Grid aide à créer une excellente expérience mobile et, dans certains cas, c'est beaucoup plus facile que d'avoir une requête multimédia distincte.

Dans cet exemple, les cartes doivent être réduites pour s'adapter au mobile et agrandies pour ne représenter qu'une fraction de l'espace disponible, de sorte qu'elles apparaissent en pleine largeur sur un appareil plus petit, aucune requête multimédia distincte n'est nécessaire :

 [css] grid-template-columns: repeat(auto-fill, minmax(300px, 1fr)); [/css]

La largeur minimale de la carte est de 300px. Autant de cartes de 300 pixels pouvant tenir apparaîtront dans la rangée. Lorsque l'appareil est très petit, il y a de fortes chances qu'il n'y ait pas l'espace disponible pour deux cartes à la suite. C'est alors que le 1fr entre en jeu. L'unité fractionnaire est idéale pour les conceptions réactives. Lorsque deux des cartes de 300 pixels ne rentrent pas, c'est là que la vue mobile devient très apparente. Lorsque 1fr a été déclaré comme largeur maximale, une seule carte occupera tout l'espace disponible et elles s'empileront les unes sur les autres.

mise en page par volant mise en page de la carte mise en page de la grille css comment tutoriel mise en page de la carte multi-appareils

Écart de grille

Maintenant que la largeur des cartes est établie, la décision d'avoir de l'espace entre elles doit être prise. Cette propriété est disponible sur les conteneurs de grille et facilite la création de gouttières dans la conception. Grid-column-gap crée l'espace entre chaque carte. Lorsque vous voyez grid-gap , cela fait référence au raccourci pour grid-row-gap et grid-column-gap . Grid-row-gap est l'espace en haut et en bas de la carte, grid-column-gap est l'espace à gauche et à droite de la carte.

Ressources de mise en page de la grille CSS

En ce qui concerne les mises en page de grille CSS, il y a beaucoup à apprendre et il existe de nombreuses possibilités. La meilleure façon d'en savoir plus sur CSS Grid Layout est de faire quelques lectures et expérimentations supplémentaires. Il existe de nombreuses ressources intéressantes, mais en voici quelques-unes pour vous aider à démarrer :

  • Grille par exemple
  • Cours CSS Grid Layout de Wes Bos
  • Introduction de Mozilla à la grille CSS