⊗mkSpFxZG 87 of 128 menu

Nulová chamtivosť flex elementov v CSS

Ak je flex-grow rovný nule pre nejaký element, potom sa tento element nezúčastní rozdelenia voľného priestoru. Predvolene má chamtivosť práve nulovú hodnotu, a preto elementy bez nastaveného flex-grow si medzi sebou nedelia voľný priestor.

Urobme si pre príklad nejaký výpočet. Predpokladajme, že máme tri flex elementy, každý so šírkou 100px. Nech prvý element nemá flex-grow (alebo je rovné 0), druhý element má flex-grow, rovné 2, a tretí - rovné 3.

Nech je šírka rodiča 500px. Potom bude voľný priestor rovný 200px, a na jednu jednotku flex-grow pripadne 200px / 5 = 40px. Výsledkom bude, že šírka prvého elementu zostane 100px, keďže sa nezúčastňuje rozdelenia, šírka druhého bude 100px + 2 * 40px = 180px, a šírka tretieho - 100px + 3 * 40px = 220px.

Praktické úlohy

Vo všetkých úlohách nižšie vám bude predstavený nejaký kód s flex elementami, ktoré majú šírku a flex-grow. Podľa predstaveného kódu vypočítajte, aké rozmery bude mať každý z elementov. Potom spustite kód a skontrolujte vaše výpočty, odmeraním reálnych šírok elementov.

<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; }
Slovenčina
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Používame cookies na fungovanie stránky, analýzu a personalizáciu. Spracúvanie údajov prebieha v súlade s Politikou ochrany osobných údajov.
prijať všetky nastaviť odmietnuť