Générateur CSS Grid, gratuit

Construisez des mises en page CSS Grid visuellement · réglez colonnes, rangées, espace et alignement, voyez un aperçu en direct, copiez le CSS.

Propriétés de la grille

Aperçu

CSS généré

Comment utiliser

  1. Définissez les dimensions de la grille : saisissez le nombre de colonnes et de rangées pour votre mise en page.
  2. Définissez les pistes : réglez la largeur de chaque colonne et la hauteur de chaque rangée avec des unités fr, des pixels, des pourcentages, auto ou minmax().
  3. Copiez le CSS : les propriétés display: grid, grid-template-columns, grid-template-rows et gap générées sont prêtes à coller dans votre feuille de style.

Pourquoi utiliser le générateur CSS Grid ?

CSS Grid est le système de mise en page le plus puissant de CSS, capable de créer des mises en page bidimensionnelles complexes qui exigeaient auparavant des tables, des floats ou du JavaScript. Mais maîtriser grid-template-columns, les unités fr, minmax(), repeat() et les zones nommées demande de la pratique. Ce générateur visuel vous permet de construire n'importe quelle grille par clic et glisser, puis produit un CSS propre à utiliser immédiatement ou à étudier pour approfondir votre compréhension de Grid.

Fonctionnalités

Questions fréquentes

Qu'est-ce qu'une unité « fr » en CSS Grid ?

L'unité fr (fraction) répartit l'espace disponible proportionnellement. Dans une grille à 3 colonnes avec 1fr 2fr 1fr, la colonne du milieu reçoit deux fois plus d'espace que les extérieures. Les unités fr se partagent l'espace restant après l'allocation des pistes à taille fixe.

Comment créer une grille responsive sans media queries ?

Utilisez repeat(auto-fill, minmax(200px, 1fr)) comme valeur de grid-template-columns. Cela crée autant de colonnes que la taille minimale le permet, s'étendant pour remplir l'espace disponible. Les éléments se réorganisent automatiquement quand la largeur du conteneur change.

Quelle est la différence entre grid-template et grid-auto ?

grid-template-columns/rows définit les pistes explicites que vous spécifiez. grid-auto-columns/rows définit la taille des pistes implicites, colonnes et rangées créées automatiquement quand les éléments débordent de la grille explicite.

Une brève histoire de CSS Grid

Avant CSS Grid, les mises en page web ont traversé trois époques pénibles. Les mises en page à base de tables (1995-2008) détournaient l'élément <table> à des fins de structure visuelle, avec un «découpage» de maquettes Photoshop en grilles HTML. Les mises en page à base de flottants (2008-2013) ont remplacé les tables par la propriété float, nécessitant des bidouilles «clearfix» comme le micro-clearfix de Nicolas Gallagher (2011) pour contenir les enfants en retour à la ligne. Flexbox (CSS Flexible Box Layout Module Level 1, Recommandation W3C 2018) a résolu les mises en page unidimensionnelles mais peinait avec les véritables grilles bidimensionnelles. L'histoire de CSS Grid commence avec l'implémentation -ms-grid de Microsoft dans Internet Explorer 10 (2012), une première version qui a éclairé la spécification W3C. Le premier projet de travail public W3C de CSS Grid Layout Module Level 1 est paru en avril 2011, mais l'élan véritable est venu du travail de plaidoyer de Rachel Andrew (son livre Get Ready for CSS Grid Layout, 2016) et de Jen Simmons (développeuse-évangéliste Mozilla, circuit de conférences 2016-2018). La course des navigateurs s'est dénouée dans une remarquable fenêtre de deux mois en mars 2017 : Chrome 57, Firefox 52, Safari 10.1 et Edge 16 ont tous livré Grid sans préfixe à quelques semaines d'écart. Le W3C a marqué Grid Level 1 comme Recommandation candidate en décembre 2016 ; la Recommandation W3C finale est arrivée en août 2020. Subgrid (Level 2) est arrivé dans Firefox 71 (déc. 2019), Safari 16 (sept. 2022) et Chrome 117 (sept. 2023). La prochaine frontière est la mise en page Masonry proposée (proposition CSS Working Group 2020, derrière un flag dans Firefox depuis 2021).

L'anatomie d'une grille CSS

Motifs Grid du monde réel

Standards et jalons

Questions fréquentes supplémentaires

Quand utiliser Grid plutôt que Flexbox ?

Le raccourci communautaire : Flexbox pour une dimension, Grid pour deux. Si vous disposez une rangée de boutons ou alignez des éléments dans une seule direction, Flexbox est plus simple. Si vous concevez une mise en page de page entière avec des lignes et colonnes qui doivent s'aligner, Grid est le bon outil. Beaucoup de mises en page réelles combinent les deux : Grid pour le squelette de la page, Flexbox pour l'alignement au niveau des composants à l'intérieur de chaque zone de grille. Les frameworks modernes (Tailwind, Bootstrap 5) adoptent ce motif.

CSS Grid fonctionne-t-il dans les navigateurs plus anciens ?

Tous les navigateurs evergreen (Chrome, Firefox, Safari, Edge) prennent en charge Grid depuis mars 2017. Internet Explorer 11 n'a que la syntaxe ancienne -ms-grid (sous-ensemble, préfixé, manquant de nombreuses fonctionnalités). Pour la prise en charge d'IE11, utilisez des requêtes @supports pour revenir à Flexbox ou à des mises en page à base de flottants. En 2024, IE11 a moins de 0,5 % d'utilisation globale, donc la plupart des équipes ont abandonné le repli. Caniuse.com rapporte plus de 97 % de prise en charge globale pour Grid sans préfixe.

Quelle est la différence entre grid-template-areas et grid-area ?

grid-template-areas est défini sur le conteneur de grille et cartographie visuellement les régions nommées de la grille (une chaîne par ligne). grid-area est défini sur un élément de grille pour lui assigner l'une de ces régions nommées. Les deux fonctionnent ensemble : le conteneur déclare la «carte», les éléments déclarent «je suis la région X». Vous pouvez aussi utiliser grid-area directement avec des numéros de lignes (grid-area: 1 / 1 / 3 / 4) au lieu de noms, ce qui est utile pour les mises en page dynamiques.

Qu'est-ce que subgrid et quand devrais-je l'utiliser ?

Subgrid permet à une grille imbriquée d'hériter des définitions de piste de sa grille parente au lieu de créer les siennes. Cela résout le problème de l'alignement d'éléments à travers des grilles imbriquées, par exemple, une carte avec une mise en page interne qui doit s'aligner avec les cartes environnantes. Utilisez grid-template-columns: subgrid sur la grille imbriquée. Disponible dans Firefox 71+ (déc. 2019), Safari 16+ (sept. 2022), Chrome 117+ (sept. 2023). Retombe sur une grille imbriquée normale dans les navigateurs qui ne la prennent pas en charge.

Comment Grid interagit-il avec l'accessibilité ?

Le positionnement Grid ne change pas l'ordre source du DOM : les éléments apparaissent à la position visuelle que vous assignez, mais les lecteurs d'écran et l'ordre de tabulation au clavier suivent la source. WCAG 2.1 SC 1.3.2 Séquence significative exige que l'ordre source ait du sens lorsque les styles sont supprimés. L'implication : concevez d'abord votre source DOM pour un ordre de lecture logique, puis utilisez Grid pour placer les éléments visuellement. Si vous réordonnez radicalement les éléments avec grid-column: 3 / 5; grid-row: 2, auditez avec un lecteur d'écran pour confirmer que l'ordre vocal a toujours du sens.

Outils associés

Visualiseur du modèle de boîte CSS, gratuit Générateur CSS multi-colonnes, gratuit Générateur CSS Flexbox, gratuit Générateur CSS clip-path, gratuit