grid-template

La propriété grid-template est une propriété raccourcie permettant de définir les colonnes, grilles et zones d'une grille.

Les propriétés détaillées sont grid-template-rows, grid-template-columns et grid-template-areas.

Valeur initialepour chaque propriété individuelle de la propriété raccourcie :
Applicabilitéconteneurs de grille
Héritéenon
Pourcentagespour chaque propriété individuelle de la propriété raccourcie :
Médiavisuel
Valeur calculéepour chaque propriété individuelle de la propriété raccourcie :
Type d'animationdiscrète
Ordre canoniquel'ordre unique et non-ambigu défini par la grammaire formelle

Syntaxe

/* Valeur avec un mot-clé */
grid-template: none;

/* Valeurs utilisant grid-template-rows / grid-template-columns */
grid-template: 100px 1fr / 50px 1fr;
grid-template: auto 1fr / auto 1fr auto;
grid-template: [linename] 100px / [columnname1] 30% [columnname2] 70%;
grid-template: fit-content(100px) / fit-content(40%);

/* Valeurs utilisant grid-template-areas grid-template-rows / grid-template-column */
grid-template: "a a a"
               "b b b";
grid-template: "a a a" 20%
               "b b b" auto;
grid-template: [header-top] "a a a"     [header-bottom]
                 [main-top] "b b b" 1fr [main-bottom]
                            / auto 1fr auto;

/* Valeurs globales */
grid-template: inherit;
grid-template: initial;
grid-template: unset;

Valeurs

none
Un mot-clé qui applique none sur les trois propriétés détaillées et qui indique qu'il n'y a pas de grille explicite. Il n'y a pas de zone de grille nommée. Les lignes et les colonnes seront générées de façon implicite et leurs tailles seront déterminées par les propriétés grid-auto-rows et grid-auto-columns.
<'grid-template-rows'> / <'grid-template-columns'>
Voir grid-template-rows et grid-template-columns pour les valeurs définies. grid-template-areas recevra la valeur none.
[ <line-names>? <string> <track-size>? <line-names>? ]+ [ / <track-list> ]?
grid-template-areas est définie avec les chaînes listées, grid-template-rows est définie avec les tailles de piste suivant chaque chaîne (auto sera utilisé pour les tailles manquantes), les lignes seront découpées selon les noms avant et après chaque taille. grid-template-columns sera définie avec la valeur listée après la barre oblique (ou none sinon).

Note : La fonction repeat() n'est pas autorisée parmi les listes de pistes car les pistes sont conçues pour correspondre à la disposition finale (à la façon d'un dessin en ASCII).

Note : La propriété raccourcie grid accepte la même syntaxe mais réinitialise également les propriétés implicites avec leurs valeurs initiales. On pourra utiliser grid (plutôt que grid-template) pour empêcher les valeurs de suivre la cascade de façon séparée.

Syntaxe formelle

none | [ <'grid-template-rows'> / <'grid-template-columns'> ] | [ <line-names>? <string> <track-size>? <line-names>? ]+ [ / <explicit-track-list> ]?


<line-names> = '[' <custom-ident>* ']'
<track-size> = <track-breadth> | minmax( <inflexible-breadth> , <track-breadth> ) | fit-content( [ <length> | <percentage> ] )
<explicit-track-list> = [ <line-names>? <track-size> ]+ <line-names>?


<track-breadth> = <length-percentage> | <flex> | min-content | max-content | auto
<inflexible-breadth> = <length> | <percentage> | min-content | max-content | auto


<length-percentage> = <length> | <percentage>

Exemples

CSS

#page {
  display: grid;
  width: 100%;
  height: 200px;
  grid-template: [header-left] "head head" 30px [header-right]
                 [main-left]   "nav  main" 1fr  [main-right]
                 [footer-left] "nav  foot" 30px [footer-right]
                 / 120px 1fr;
}

header {
  background-color: lime;
  grid-area: head;
}

nav {
  background-color: lightblue;
  grid-area: nav;
}

main {
  background-color: yellow;
  grid-area: main;
}

footer {
  background-color: red;
  grid-column: foot;
}

HTML

<section id="page">
  <header>En-tête</header>
  <nav>Navigation</nav>
  <main>Zone principal</main>
  <footer>Bas de page</footer>
</section>

Résultat

Spécifications

Spécification État Commentaires
CSS Grid Layout
La définition de 'grid-template' dans cette spécification.
Candidat au statut de recommandation Définition initiale.

Compatibilité des navigateurs

Fonctionnalité Chrome Edge Firefox (Gecko) Internet Explorer Opera Safari
Support simple 57.0[1] Pas de support[3] 52.0 (52.0)[2] Pas de support[3] 44[4] Pas de support[5]
Fonctionnalité Chrome pour Android Android Webview Firefox Mobile (Gecko) IE Mobile Opera Mobile Safari Mobile
Support simple 57.0[1] 57.0[1] 52.0 (52.0)[2] Pas de support[3] 44 Pas de support

[1] Cette fonctionnalité est implémentée via le marqueur fonctionnalités expérimentales de la Web Platform sous chrome://flags depuis Chrome 29.0.

[2] Cette fonctionnalité est implémentée via la préférence layout.css.grid.enabled qui vaut false par défaut depuis Gecko 40.0 (Firefox 40.0 / Thunderbird 40.0 / SeaMonkey 2.37). Depuis Gecko 51.0 (Firefox 51.0 / Thunderbird 51.0 / SeaMonkey 2.48), la fonction fit-content est prise en charge et depuis Gecko 52.0 (Firefox 52.0 / Thunderbird 52.0 / SeaMonkey 2.49), la préférence est activée par défaut.

[3] Internet Explorer et Edge implémentent une ancienne version de la spécification qui ne définissait pas cette propriété raccourcie.

[4] Cette fonctionnalité est disponible via la préférence Activer les fonctionnalités expérimentales de la plateforme web sous chrome://flags depuis Opera 28.0.

[5] Implémentation expérimentale disponible via Safari Technological Preview.

Voir aussi

Étiquettes et contributeurs liés au document

Étiquettes : 
 Contributeurs à cette page : SphinxKnight
 Dernière mise à jour par : SphinxKnight,