Propriété CSSGrid

grid-template-columns

Définit les colonnes de la grille : leur nombre et leur largeur.

Valeur initiale
none
Héritée
Non
Animable
oui, quand seules les valeurs changent, pour le même nombre de colonnes
S’applique à
conteneurs grid
JavaScript
element.style.gridTemplateColumns = "1fr 2fr"
Sur cette page

Exemple

#
CSS
.courses {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(140px, 1fr));
  gap: 12px;
}
Aperçu

Définition et utilisation

#

La propriété grid-template-columns est le cœur de la mise en page CSS Grid. Chaque valeur de la liste représente une colonne, donc 200px 1fr 1fr crée trois colonnes : la première de largeur fixe, et deux qui partagent le reste de l’espace à égalité.

L’unité fr représente une fraction de l’espace libre, et la fonction repeat() raccourcit les motifs répétitifs. L’écriture repeat(auto-fill, minmax(160px, 1fr)) crée autant de colonnes d’au moins 160px qu’il en tient, sans aucune requête @media.

Les éléments de la grille se placent automatiquement dans les cellules suivantes, ligne après ligne. Les lignes que vous ne définissez pas apparaissent toutes seules et reçoivent leur hauteur de grid-auto-rows.

Syntaxe

#
Syntaxe
grid-template-columns: none | <taille de piste>+ | repeat(…) | subgrid;

Valeurs

#
  • 100px 100px

    <longueur>

    Deux colonnes de largeur fixe.
  • 1fr 2fr

    <fr>

    La deuxième colonne est deux fois plus large que la première.
  • repeat(3, 1fr)

    repeat()

    Trois colonnes égales.
  • 80px 1fr auto

    Une colonne fixe, une élastique et une ajustée au contenu.
  • repeat(auto-fill, minmax(70px, 1fr))

    auto-fill + minmax()

    Autant de colonnes d’au moins 70px qu’il en tient. La grille s’ajuste seule à la largeur disponible.

Valeurs en pratique

#

100px 100px

Deux colonnes de largeur fixe.
.demo { grid-template-columns: 100px 100px; }

1fr 2fr

La deuxième colonne est deux fois plus large que la première.
.demo { grid-template-columns: 1fr 2fr; }

repeat(3, 1fr)

Trois colonnes égales.
.demo { grid-template-columns: repeat(3, 1fr); }

80px 1fr auto

Une colonne fixe, une élastique et une ajustée au contenu.
.demo { grid-template-columns: 80px 1fr auto; }

repeat(auto-fill, minmax(70px, 1fr))

Autant de colonnes d’au moins 70px qu’il en tient. La grille s’ajuste seule à la largeur disponible.
.demo { grid-template-columns: repeat(auto-fill, minmax(70px, 1fr)); }

Compatibilité des navigateurs

#

Largement disponible

Fonctionne dans tous les navigateurs modernes, y compris sur mobile. Vous pouvez l’utiliser sans crainte.

  • Chrome
  • Edge
  • Firefox
  • Safari

Bonnes pratiques

#
  • minmax(160px, 1fr) avec auto-fill ou auto-fit est la grille de cartes responsive la plus simple, sans requête sur la largeur de l’écran.
  • fr partage l’espace libre, donc 1fr 1fr ne donne pas toujours des colonnes égales avec un contenu volumineux. minmax(0, 1fr) aide dans ce cas.

Entrées associées

#

Vous voyez une erreur ou il manque un exemple ? Écrivez-nous.