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-columns
définit les noms des lignes et les fonctions de taille (track sizing) pour les colonnes de la grille.
Valeur initiale | none |
---|---|
Applicabilité | conteneurs de grille |
Héritée | non |
Pourcentages | fait référence à la dimension correspondante de la zone de contenu |
Média | visuel |
Valeur calculée | comme spécifié, mais avec les longueurs relatives converties en longueurs absolues |
Type d'animation | discrète |
Ordre canonique | l'ordre unique et non-ambigu défini par la grammaire formelle |
Syntaxe
/* Valeur avec un mot-clé */ grid-template-columns: none; /* Valeurs <track-list> */ grid-template-columns: 100px 1fr; grid-template-columns: [linename] 100px; grid-template-columns: [linename1] 100px [linename2 linename3]; grid-template-columns: minmax(100px, 1fr); grid-template-columns: fit-content(40%); /* Valeurs <auto-track-list> */ grid-template-columns: 200px repeat(auto-fill, 100px) 300px; grid-template-columns: minmax(100px, max-content) repeat(auto-fill, 200px) 20%; grid-template-columns: [linename1] 100px [linename2] repeat(auto-fit, [linename3 linename4] 300px) 100px; grid-template-columns: [linename1 linename2] 100px repeat(auto-fit, [linename1] 300px) [linename3]; /* Valeurs globales */ grid-template-columns: inherit; grid-template-columns: initial; grid-template-columns: unset;
Valeurs
none
- Un mot-clé qui indique qu'il n'y a pas de grille explicite. N'importe quelle colonne sera générée implicitement et sa taille sera déterminée grâce à la propriété
grid-auto-columns
. <length>
- Un longueur positive.
<percentage>
- Un pourcentage positif (type
<percentage>
) relatif à la taille du bloc du conteneur de la grille. Si cette taille n'est pas définie, la valeur est traitée commeauto
. <flex>
- Une dimension positive dont l'unité
fr
indique le facteur de flexibilité de la piste. Chaque piste dimensionnée avec<flex>
occupera une partie de l'espace restant en fonction de ce facteur.Lorsque cette valeur apparaît en dehors de la notation
minmax()
, la valeur minimaleauto
est implicite (la valeur signifieminmax(auto, <flex>)
). max-content
- Un mot-clé qui représente la plus grande des contributions maximales de contenu aux objets de la grilles qui occupe la piste de la grille.
min-content
- Un mot-clé qui représente la plus grande des contributions minimales de contenu aux objets de la grilles qui occupe la piste de la grille.
minmax(min, max)
- Une notation fonctionnelle qui définit un intervalle de taille entre
min
etmax
. Simax
est inférieur àmin
,max
est ignoré et la fonction est traitée comme un minimum. En tant que maximum, elle joue le rôle d'une valeur<flex>
qui définit le facteur de flexibilité de la piste. En tant que minimum, elle est gérée comme zéro (ou comme le contenu minimal si le conteneur de la grille impose une contrainte de contenu minimal). auto
- Un mot-clé qui est identique au contenu maximal si c'est un maximum. Si c'est un minimum, il représente la plus grande des plus petites tailles (définie par
min-width
/min-height
)) des objets de la grilles qui occupe cette piste de la grille. -
Note : Les pistes de taille
auto
(et uniquement celles-ci) peuvent être étirées grâce aux propriétésalign-content
etjustify-content
. fit-content( [ <length> | <percentage> ] )
- Cette notation représente la formule
min(max-content, max(auto, argument))
qui est calculée comme pourauto
(i.e.minmax(auto, max-content)
) sauf que la taille de la piste est ramenée à argument si elle est plus grande que le minimum fourni parauto
.
Syntaxe formelle
none | <track-list> | <auto-track-list>où
<track-list> = [ <line-names>? [ <track-size> | <track-repeat> ] ]+ <line-names>?
<auto-track-list> = [ <line-names>? [ <fixed-size> | <fixed-repeat> ] ]* <line-names>? <auto-repeat> [ <line-names>? [ <fixed-size> | <fixed-repeat> ] ]* <line-names>?où
<line-names> = '[' <custom-ident>* ']'
<track-size> = <track-breadth> | minmax( <inflexible-breadth> , <track-breadth> ) | fit-content( [ <length> | <percentage> ] )
<track-repeat> = repeat( [ <positive-integer> ] , [ <line-names>? <track-size> ]+ <line-names>? )
<fixed-size> = <fixed-breadth> | minmax( <fixed-breadth> , <track-breadth> ) | minmax( <inflexible-breadth> , <fixed-breadth> )
<fixed-repeat> = repeat( [ <positive-integer> ] , [ <line-names>? <fixed-size> ]+ <line-names>? )
<auto-repeat> = repeat( [ auto-fill | auto-fit ] , [ <line-names>? <fixed-size> ]+ <line-names>? )où
<track-breadth> = <length-percentage> | <flex> | min-content | max-content | auto
<inflexible-breadth> = <length> | <percentage> | min-content | max-content | auto
<fixed-breadth> = <length-percentage>où
<length-percentage> = <length> | <percentage>
Exemples
CSS
#grid { display: grid; width: 100%; grid-template-columns: 50px 1fr; } #areaA { background-color: lime; } #areaB { background-color: yellow; }
HTML
<div id="grid"> <div id="areaA">A</div> <div id="areaB">B</div> </div>
Résultat
Spécifications
Spécification | État | Commentaires |
---|---|---|
CSS Grid Layout La définition de 'grid-template-columns' 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] | 10.0-ms[3] | 20-ms[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 | 10.0-ms[3] | 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 utilise le préfixe -ms. La propriété qui est implémentée peut être utilisée avec -ms-grid-columns
.