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 initiale | pour chaque propriété individuelle de la propriété raccourcie :
|
---|---|
Applicabilité | conteneurs de grille |
Héritée | non |
Pourcentages | pour chaque propriété individuelle de la propriété raccourcie :
|
Média | visuel |
Valeur calculée | pour chaque propriété individuelle de la propriété raccourcie :
|
Type d'animation | discrète |
Ordre canonique | l'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]; grid-template: minmax(100px, 1fr); grid-template: fit-content(40%); /* 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 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ésgrid-auto-rows
etgrid-auto-columns
. <'grid-template-rows'> / <'grid-template-columns'>
- Voir
grid-template-rows
etgrid-template-columns
pour les valeurs définies.grid-template-areas
recevra la valeurnone
. [ <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 (ounone
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 | [ <'grid-template-rows'> / <'grid-template-columns'> ] | [ <line-names>? <string> <track-size>? <line-names>? ]+ [ / <explicit-track-list> ]?où
<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>?où
<track-breadth> = <length-percentage> | <flex> | min-content | max-content | auto
<inflexible-breadth> = <length> | <percentage> | min-content | max-content | autooù
<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. |
Version de travail | Définition initiale. |
Compatibilité des navigateurs
Fonctionnalité | Chrome | Firefox (Gecko) | Internet Explorer | Edge | Opera | Safari |
---|---|---|---|---|---|---|
Support simple | Pas de support[1] | Pas de support[2] | Pas de support[3] | Pas de support[3] | Pas de support[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
depuis Chrome 29.0 et Opera 28.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.
[3] Internet Explorer implémente une ancienne version de la spécification qui ne définissait pas cette propriété raccourcie.