⊗mkSpFxZG 87 of 128 menu

Нулева алчност на флекс елементите в 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; }
Български
AfrikaansAzərbaycanবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Ние използваме бисквитки за работата на сайта, анализ и персонализация. Обработката на данни се извършва в съответствие с Политика за поверителност.
приемам всички настройки отхвърляне