Fit-content() - Fonction CSS

fit-content()

Résumé des caractéristiques de la fonction fit-content()

Description rapide
Calcule une dimension en fonction du contenu et de limites.
Statut
Standard
Module W3C
Module CSS - Dimensionnement des blocs
Statut du document: WD (document de travail)

Description de la fonction fit-content().

La fonction fit-content() calcule une dimension d'après le contenu de l'élément, tout en veillant à ce que cette dimension reste inférieure ou égale à la limite indiquée. Elle est surtout efficace pour définir la largeur des colonnes ou la hauteur des lignes d'une grille (voir grid-template-columns et grid-template-rows).

fit-content() effectue le calcul suivant:

min(max-content, max(min-content, <paramètre>))

La spécification future devrait étendre son utilisation au dimensionnement des blocs (propriétés width, height, min-width, max-width, min-height et max-height).

Les trois cellules ci-dessous font partie de trois grilles différentes. Elles ont toutes été dimensionnées avec fit-content(200px). On voit que la largeur des cellules s'agrandit en fonction du contenu, mais ne dépasse jamais la limite des 200 pixels indiquée.

Texte court
Texte un peu plus long
Texte vraiment beaucoup plus long

Remarque : il existe également une valeur prédéfinie fit-content qui a un fonctionnement comparable à la fonction du même nom, mais qui ne permet pas de définir une dimension maximale. La valeur fit-content est cependant mieux reconnue par les navigateurs pour dimensionner des éléments en dehors d'une grille. Plus d'infos sur la valeur fit-content.

Reportez-vous également aux pages d'explication des valeurs min-content et max-content.

La valeur fit-content() peut être utilisée avec les propriétés suivantes :

Syntaxes de la fonction fit-content().

  • grid-auto-columns: fit-content(100px);

    fit-content() attend une seule valeur, positive ou nulle, suivie d'une unité de dimensions, sauf l'unité fr. Voir les unités de dimension. Cette valeur est traitée comme un maximum dans le calcul de la largeur optimale.

Simulateur avec la fonction fit-content().

La fonction fit-content() est particulièrement pratique pour définir la largeur des colonnes d'une grille, ou la hauteur de ses lignes. Elle prend en compte toutes les cellules des colonnes, ou toutes les cellules des lignes.

Les ordinateurs sont inutiles. Ils ne savent que donner des réponses.
Pablo Picasso
L'intelligence artificielle ne fait pas le poids face à la stupidité naturelle.
Albert Einstein
L'intelligence artificielle se définit comme le contraire de la bêtise naturelle.
Woody Allen

Simulateur avec la fonction fit-content().

Le simulateur manipule une grille de trois colonnes. La largeur de ces dernières est ajustée en fonction de la valeur que vous choisissez ci-dessous.

grid-auto-columns :
Première cellule
Deuxième cellule, contenant plus de texte
3ème cellule
 
 
 

Support de la fonction fit-content().

Le tableau ci-dessous présente la prise en charge de la fonction fit-content() dans trois cas de figure :

Colonne 1
Support par les navigateurs de la fonction fit-content() dans le contexte d'une grille, pour dimensionner les largeurs de colonnes et les hauteurs de lignes.
Colonne 2
Support par les navigateurs de la fonction fit-content() pour dimensionner les éléments d'un flex-box.
Colonne 3
Support par les navigateurs de la fonction fit-content() pour dimensionner n'importe quel élément avec les propriétés height et width.

Remarques :

(1) Firefox peut activer cette fonctionnalité avec le flag layout.css.fit-content-function.enabled.

1
Fonction
fit-content()
(grille)
2
Fonction
fit-content()
(flex-box)
3
Fonction
fit-content()
(autres usages)
Estimation de la prise en charge globale.
95%
93%
0%

Navigateurs sur ordinateurs :

Navigateurs sur mobiles :

Navigateurs obsolètes ou marginaux :

Internet Explorer

QQ Browser

Safari sur IOS

Firefox pour Androïd

Opéra Mobile

Baidu Browser

KaiOS Browser

UC Browser pour Androïd

Samsung Internet

Chrome

Edge

Androïd Brower

Chrome pour Androïd

Opéra

Safari

Firefox

Opéra mini

Historique de la fonction fit-content().

Dimensionnement des blocs, voir aussi...

Les spécifications CSS éditées par le W3C sont organisées en modules. La fonction fit-content() est décrite dans le module Module CSS - Dimensionnement des blocs, ainsi que la valeur du même nom et les définitions suivantes :

Propriétés :

aspect-ratio
Définit le ratio entre la largeur et la hauteur de l'élément.
block-size
Définit la dimension d'un l'élément suivant la direction des blocs. Pour les langues latines, cette propriété logique est équivalente à height.
box-sizing
Définit le mode de calcul des dimensions de blocs : en incluant ou non les bordures et les marges intérieures.
contain-intrinsic-block-size
Définit la dimension de l'élément dans la direction des blocs, lorsque l'élément est confiné.
contain-intrinsic-height
Définit la hauteur intrinsèque de l'élément lorsque celui-ci est confiné.
contain-intrinsic-inline-size
Définit la dimension de l'élément dans la direction des lignes, lorsque l'élément est confiné.
contain-intrinsic-size
Définit les dimensions de l'élément (blocs et lignes) lorsque l'élément est confiné.
contain-intrinsic-width
Définit la largeur intrinsèque de l'élément lorsque celui-ci est confiné.
height
Définit la hauteur de l'élément.
inline-size
Définit la dimension de l'élément dans la direction des lignes. Pour les langues latines cette propriété est équivalente à width.
max-height
Définit une limite à la hauteur maximale de l'élément.
max-width
Définit la largeur maximale de l'élément.
min-height
Définit la hauteur minimale de l'élément.
min-width
Définit la largeur minimale de l'élément.
width
Définit la largeur de l'élément.

Fonctions :

Fit-content()
Calcule une dimension en fonction du contenu et de limites.

Valeurs:

fit-content
Calcule la dimension d'un élément en fonction de son contenu et de la place disponible.
max-content
Donne la dimension d'un texte sans insérer de retours à la ligne.
min-content
Donne la dimension d'un texte après avoir inséré le plus possible de retours à la ligne.