Mozilla's getting a new look. What do you think? https://mzl.la/brandsurvey

grid-template

Cette fonction est expérimentale
Puisque cette fonction est toujours en développement dans certains navigateurs, veuillez consulter le tableau de compatibilité pour les préfixes à utiliser selon les navigateurs.
Il convient de noter qu'une fonctionnalité expérimentale peut voir sa syntaxe ou son comportement modifié dans le futur en fonction des évolutions de la spécification.

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 :
Animablenon
Ordre canoniquel'ordre unique et non-ambigu défini par la grammaire formelle

Syntaxe

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

/* Valeurs <track-list> */
grid-template: 100px 1fr;
grid-template: [linename] 100px;
grid-template: [linename1] 100px [linename2 linename3];

/* Valeurs <auto-track-list> */
grid-template: 200px repeat(auto-fill, 100px) 300px;
grid-template: minmax(100px, max-content)
                       repeat(auto-fill, 200px) 20%;
grid-template: [linename1] 100px [linename2]
                       repeat(auto-fit, [linename3 linename4] 300px)
                       100px;
grid-template: [linename1 linename2] 100px
                       repeat(auto-fit, [linename1] 300px) [linename3];

/* Valeurs faisant référence à une grille parente */
grid-template: subgrid;
grid-template: subgrid [linename1];
grid-template: subgrid repeat(4, [linename1]);
grid-template: subgrid repeat(4, [linename1 linename2]);
grid-template: subgrid repeat(auto-fill, [linename1]);

/* 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.
subgrid
Un mot-clé qui permet d'appliquer la valeur subgrid à grid-template-rows et grid-template-columns et d'appliquer la valeur initiale à grid-template-areas. Ce mot-clé indique que la grille sera alignée par rapport à la grille parente selon les deux axes. Les tailles des lignes et colonnes ne seront pas définies explicitement mais seront basées sur la définition de la grille parente.
<'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 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 | subgrid | [ <'grid-template-rows'> / <'grid-template-columns'> ] | [ <line-names>? <string> <track-size>? <line-names>? ]+ [ / <track-list> ]?


<line-names> = '[' <custom-ident>* ']'
<track-size> = <track-breadth> | minmax( <track-breadth> , <track-breadth> )
<track-list> = [ <line-names>? [ <track-size> | <track-repeat> ] ]+ <line-names>?


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

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.
Version de travail Définition initiale.

Compatibilité des navigateurs

Fonctionnalité Chrome Firefox (Gecko) Internet Explorer Edge Opera Safari
Support simple 29.0[1] 40.0 (40.0)[2] Pas de support[3] Pas de support[3] 28.0[1] Nightly build-webkit
Fonctionnalité Android Firefox Mobile (Gecko) IE Mobile Opera Mobile Safari Mobile
Support simple Pas de support Pas de support Pas de support Pas de support Pas de support

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

[2] Cette fonctionnalité est implémentée via la préférence layout.css.grid.enabled qui vaut false par défaut.

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

Voir aussi

Étiquettes et contributeurs liés au document

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