Propriété CSSFlexbox

flex-grow

Détermine avec quelle avidité un élément grandit pour remplir l’espace libre.

Valeur initiale
0
Héritée
Non
Animable
oui, en tant que nombre
S’applique à
éléments flex
JavaScript
element.style.flexGrow = "1"
Sur cette page

Exemple

#
CSS
.search {
  display: flex;
  gap: 8px;
}

.search input {
  flex-grow: 1;
}
Aperçu

Définition et utilisation

#

La propriété flex-grow accepte un nombre qui indique quelle part de l’espace libre du conteneur l’élément recevra. Avec la valeur par défaut 0, l’élément ne grandit pas du tout.

Les nombres fonctionnent proportionnellement. Si un élément a flex-grow: 2 et un autre 1, le premier recevra deux fois plus d’espace supplémentaire. Attention : seul l’espace libre est partagé, donc des éléments avec un contenu différent n’ont pas forcément des largeurs proportionnelles.

Pour que les tailles soient strictement proportionnelles aux nombres, combinez flex-grow avec flex-basis: 0, le plus simplement avec le raccourci flex: 1.

Syntaxe

#
Syntaxe
flex-grow: <nombre>;

Valeurs

#
  • 0

    L’élément ne grandit pas. L’espace libre reste vide.
  • 1

    L’élément 2 prend tout l’espace libre.
  • 1, 1, 1

    Chaque élément reçoit une part égale de l’espace libre.
  • 2, 1

    L’élément 2 reçoit deux fois plus d’espace libre que les autres.

Valeurs en pratique

#

0

L’élément ne grandit pas. L’espace libre reste vide.
.target { flex-grow: 0; }

1

L’élément 2 prend tout l’espace libre.
.target { flex-grow: 1; }

1, 1, 1

Chaque élément reçoit une part égale de l’espace libre.
.demo .box { flex-grow: 1; }

2, 1

L’élément 2 reçoit deux fois plus d’espace libre que les autres.
.demo .box { flex-grow: 1; }
.target { flex-grow: 2; }

Compatibilité des navigateurs

#

Largement disponible

Fonctionne dans tous les navigateurs modernes, y compris sur mobile. Vous pouvez l’utiliser sans crainte.

  • Chrome
  • Edge
  • Firefox
  • Safari

Bonnes pratiques

#
  • Un champ de recherche avec un bouton à côté est un cas classique : le champ reçoit flex-grow: 1, le bouton garde sa taille naturelle.
  • Pour des colonnes égales, utilisez flex: 1, pas seulement flex-grow: 1.

Entrées associées

#

Vous voyez une erreur ou il manque un exemple ? Écrivez-nous.