204 of 313 menu

Propriété flex-grow

La propriété flex-grow détermine à quel point un bloc flex individuel peut être plus grand que les éléments adjacents, si cela est nécessaire.

Par exemple, si tous les blocs flex à l'intérieur d'un conteneur flex ont flex-grow:1, ils auront la même taille. Si l'un d'eux a flex-grow:2, il sera 2 fois plus grand que tous les autres.

Si la largeur totale des éléments est inférieure à la largeur du parent, il reste donc de l'espace vide à droite. Si on le souhaite, cet espace vide peut être réparti proportionnellement entre nos éléments. Cela se fait à l'aide de la propriété flex-grow, définie pour les éléments flex. La valeur de cette propriété est un nombre sans dimension.

S'applique à : un bloc flex spécifique.

Cette propriété fait partie intégrante de la propriété raccourcie flex.

Syntaxe

sélecteur { flex-grow: nombre positif; }

Valeur par défaut : 0.

Exemple

Actuellement, nous avons deux blocs flex avec une largeur de 100px. Leur largeur totale est de 200px, et la largeur du parent est de 300px. Il en résulte un espace libre restant de 100px.

Si les éléments n'ont pas de flex-grow défini, nous verrons simplement cet espace libre. S'il leur est attribué, la largeur réelle des éléments sera supérieure à celle définie - ils se partageront proportionnellement l'espace libre entre eux et l'ajouteront à leur largeur.

Par exemple, supposons que le premier élément ait une valeur flex-grow égale à 1, et le second à 3. Calculons quelle partie de l'espace libre chaque élément recevra.

Il faut d'abord obtenir le nombre total d'unités flex-grow de tous nos éléments. Pour le premier élément, il est de 1, et pour le second de 3. Cela signifie qu'au total il est égal à 4.

Divisons maintenant les 100px d'espace libre par 4 et nous obtenons que 25px revient à une unité de flex-grow. Il en résulte qu'au premier élément s'ajoutera une unité de flex-grow, soit 25px, et au second - trois unités, soit 75px.

La largeur du premier élément sera de 125px, et celle du second de 175px :

<div class="parent"> <div class="child elem1">1</div> <div class="child elem2">2</div> </div> .parent { display: flex; width: 300px; height: 200px; border: 1px solid red; } .child { height: 50px; border: 1px solid green; } .elem1 { width: 100px; flex-grow: 1; } .elem2 { width: 100px; flex-grow: 3; }

:

Exemple

Supposons maintenant que la largeur du parent soit de 400px, la largeur du premier élément de 200px, et la largeur du second élément de 100px. Il en résulte que l'espace libre est à nouveau égal à 100px.

Attribuons à chaque élément une valeur flex-grow égale à 1. La somme sera de 2, ce qui signifie que les 100px d'espace libre doivent être divisés par 2. Il en résulte que 50px revient à une unité d'avidité.

Comme tous les éléments ont la même valeur de flex-grow, la même valeur de 50px sera ajoutée à tous les éléments. Cela signifie que le premier élément deviendra 250px, et que le second deviendra 150px :

<div class="parent"> <div class="child elem1">1</div> <div class="child elem2">2</div> </div> .parent { display: flex; width: 400px; height: 200px; border: 1px solid red; } .child { height: 50px; border: 1px solid green; } .elem1 { width: 200px; flex-grow: 1; } .elem2 { width: 100px; flex-grow: 1; }

:

Exemple

Supposons à nouveau que la largeur du parent soit de 400px, la largeur du premier élément de 200px, et la largeur du second élément de 100px.

Attribuons maintenant au premier élément une valeur flex-grow de 3, et au second une valeur de 1. L'avidité totale sera égale à 4. Alors une unité d'avidité vaut 100px / 4 = 25px.

Au premier élément s'ajoutera 75px, et il deviendra 275px, et au second - 25px, il deviendra 125px :

<div class="parent"> <div class="child elem1">1</div> <div class="child elem2">2</div> </div> .parent { display: flex; width: 400px; height: 200px; border: 1px solid red; } .child { height: 50px; border: 1px solid green; } .elem1 { width: 200px; flex-grow: 3; } .elem2 { width: 100px; flex-grow: 1; }

:

Voir aussi

  • la propriété flex-direction,
    qui définit la direction des axes des blocs flex
  • la propriété justify-content,
    qui définit l'alignement le long de l'axe principal
  • la propriété align-items,
    qui définit l'alignement le long de l'axe transversal
  • la propriété flex-wrap,
    qui définit le retour à la ligne des blocs flex
  • la propriété flex-flow,
    raccourci pour flex-direction et flex-wrap
  • la propriété order,
    qui définit l'ordre des blocs flex
  • la propriété align-self,
    qui définit l'alignement d'un bloc spécifique
  • la propriété flex-basis,
    qui définit la taille d'un bloc flex spécifique
  • la propriété flex-shrink,
    qui définit la capacité de rétrécissement des blocs flex
  • la propriété flex,
    raccourci pour flex-grow, flex-shrink et flex-basis
Français
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Nous utilisons des cookies pour le fonctionnement du site, l'analyse et la personnalisation. Le traitement des données est effectué conformément à la Politique de confidentialité.
accepter tout personnaliser refuser