fit-content()

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 fonction CSS fit-content() permet d'obtenir une dimension restreinte à un intervalle donnée (en utilisant la formule  min(taille maximale, max(taille minimale, argument)).

/* Valeurs de type <length> */
fit-content(200px)
fit-content(5cm)
fit-content(30vw)
fit-content(100ch)

/* Valeurs de type <percentage> */
fit-content(40%)

Cette fonction peut être utilisée pour définir la taille d'une piste via les propriétés relatives aux grilles CSS où la taille maximale est définie par max-content et où la taille minimale est définie par auto et qui est calculée de façon similaire à auto (i.e. minmax(auto, max-content)), sauf que la taille de la piste est ramenée à argument si celui-ci est supérieur à auto.

Elle peut également être utilisée pour définir la taille d'une boîte avec width, height, min-width, min-height, max-width et max-height où la taille maximale fait référence à la taille maximale du contenu et où la taille minimale fait référence à la taille minimale du contenu.

Syntaxe

Valeurs

<length>
Une longueur (valeur de type <length>) exprimée de façon absolue.
<percentage>
Un pourcentage (valeur de type <percentage>) relatif à l'espace disponible sur l'axe indiqué (la hauteur ou la largeur).
Pour les propriétés qui concernent les grilles, le pourcentage est relative à la dimension en ligne du conteneur de la grille pour les pistes qui sont disposées en colonnes et à la dimension en block pour les pistes qui sont disposées en lignes. Sinon, le pourcentage est relatif à la dimension en ligne ou en bloc selon le mode d'écriture utilisé.

Syntaxe formelle

fit-content( [ <length> | <percentage> ] )

Exemples

CSS

#container {
  display: grid;
  grid-template-columns: fit-content(300px) fit-content(300px) 1fr;
  grid-gap: 5px;
  box-sizing: border-box;
  height: 200px;
  width: 100%;
  background-color: #8cffa0;
  padding: 10px;
}

#container > div {
  background-color: #8ca0ff;
  padding: 5px;
}

HTML

<div id="container">
  <div>Item as wide as the content.</div>
  <div>
    Item with more text in it. Because the contents of it are
    wider than the maximum width, it is clamped at 300 pixels.
  </div>
  <div>Flexible item</div>
</div>

Résultat

Spécifications

Spécification État Commentaires
CSS Intrinsic & Extrinsic Sizing Module Level 3
La définition de 'fit-content()' dans cette spécification.
Version de travail Définition de la fonction pour les dimensions de boîte avec les propriétés  width, height, min-width, min-height, max-width et max-height.
CSS Grid Layout
La définition de 'fit-content()' dans cette spécification.
Candidat au statut de recommandation Définition initiale, la fonction peut être utilisée pour définir la taille d'une piste au sein d'une grille CSS.

Compatibilité des navigateurs

Fonctionnalite Chrome Edge Firefox (Gecko) Internet Explorer Opera Safari
Définition de la taille d'une boîte Pas de support ? Pas de support[2] Pas de support Pas de support ?
Définition de la taille d'une piste 57.0[1] Pas de support 52.0 (52.0)[3] Pas de support Pas de support[4] ?
Fonctionnalité Android Firefox Mobile (Gecko) IE Phone Opera Mobile Safari Mobile
Définition de la taille d'une boîte Pas de support Pas de support[2] ? ? ?
Définition de la taille d'une piste ? 52.0 (52.0)[3] Pas de support Pas de support Pas de support

[1] Cette fonctionnalité est implémentée via la préférence « Fonctionnalités expérimentales de la plate-forme Web » sous chrome://flags depuis Chrome 29.0 et Opera 28.0. Elle est activée par défaut depuis Chrome 57.

[2] Cette fonctionnalité n'est pas encore implémentée pour les propriétés de hauteur et de largeur associées (cf. bug 1312588).

[3] Cette fonctionnalité est implémentée via la préférence  layout.css.grid.enabled qui vaut false par défaut depuis Gecko 51.0 (Firefox 51.0 / Thunderbird 51.0 / SeaMonkey 2.48). Elle est activée par défaut depuis Gecko 52.0 (Firefox 52.0 / Thunderbird 52.0 / SeaMonkey 2.49).

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

Étiquettes et contributeurs liés au document

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