# Нулевая жадность флекс элементов в CSS

Если `flex-grow` равен нулю для какого-то элемента, то этот элемент не будет участвовать в распределении свободного пространства. По умолчанию жадность как раз-таки имеет нулевое значение и поэтому элементы без заданного `flex-grow` не делят свободное пространство между собой.

Давайте для примера произведем какой-нибудь расчет. Пусть у нас есть три флекс-элемента, каждый с шириной в `100px`. Пусть первый элемент не имеет `flex-grow` (или оно равно `0`), второй элемент имеет `flex-grow`, равный `2`, а третий - равный `3`.

Пусть ширина родителя равна `500px`. Тогда свободное пространство будет равно `200px`, а на одну единицу `flex-grow` придется ``200px` / `5` = `40px``. Получится, что ширина первого элемента так и останется `100px`, так как он не участвует в распределении, ширина второго будет ``100px` + `2` * `40px` = `180px``, а ширина третьего - ``100px` + `3` * `40px` = `220px``.

## Практические задачи

Во всех задачах ниже вам будет представлен некоторый код с флекс-элементами, имеющими ширину и `flex-grow`. По представленному коду рассчитайте, какие размеры будет иметь каждый из элементов. Затем запустите код и проверьте ваши расчеты, измерив реальные ширины элементов.

`<div class="parent"> <div class="child elem1">1</div> <div class="child elem2">2</div> <div class="child elem3">3</div> </div>` `.parent { display: flex; width: 500px; height: 200px; border: 1px solid red; } .child { height: 50px; border: 1px solid green; } .elem1 { width: 200px; flex-grow: 0; } .elem2 { width: 100px; flex-grow: 1; } .elem3 { width: 100px; flex-grow: 1; }`
`<div class="parent"> <div class="child elem1">1</div> <div class="child elem2">2</div> <div class="child elem3">3</div> </div>` `.parent { display: flex; width: 900px; height: 200px; border: 1px solid red; } .child { height: 50px; border: 1px solid green; } .elem1 { width: 300px; flex-grow: 0; } .elem2 { width: 200px; flex-grow: 3; } .elem3 { width: 100px; flex-grow: 2; }`
`<div class="parent"> <div class="child elem1">1</div> <div class="child elem2">2</div> <div class="child elem3">3</div> <div class="child elem4">4</div> </div>` `.parent { display: flex; width: 700px; height: 200px; border: 1px solid red; } .child { height: 50px; border: 1px solid green; } .elem1 { width: 200px; flex-grow: 0; } .elem2 { width: 200px; flex-grow: 0; } .elem3 { width: 100px; flex-grow: 1; } .elem4 { width: 100px; flex-grow: 1; }`
← →
↑