⊗mkSpFxGr 86 of 128 menu

Flex-elementide aplusus CSS-is

Oletame, et meil on kaks flex-plokki, mis on paigutatud ritta. Nende plokkide laius on määratud kui 100px ja nende vanemale - 300px:

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

:

Nagu näete, on meie elementide kogulaius väiksem kui vanema laius, seetõttu jääb paremale tühja ruumi.

Soovi korral saab seda tühja ruumi proportsionaalselt jagada meie elementide vahel. See tehakse omaduse flex-grow abil, mida määratakse flex-elementidele. Selle omaduse väärtuseks on mõõtmeteta number.

Vaatame praktikas, kuidas see omadus töötab.

Näide

Praegu on meil kaks flex-plokki laiusega 100px. Nende elementide kogulaius on 200px ja vanema laius on 300px. Selgub, et jääb vaba ruumi 100px.

Kui elementidele pole määratud flex-grow, siis me lihtsalt näeme seda vaba ruumi. Kui see on neile määratud, siis on elementide tegelik laius suurem kui määratud - nad jagavad vaba ruumi proportsionaalselt enda vahel ja lisavad selle oma laiusele.

Oletame näiteks, et esimesel elemendil on flex-grow võrdne 1 ja teisel - 3. Arvutame, missuguse osa vabast ruumist saab iga element.

Kõigepealt tuleb saada koguarv flex-grow ühikuid kõigist meie elementidest. Esimesel elemendil on see võrdne 1 ja teisel - 3. See tähendab, et kokku on see võrdne 4.

Jagame nüüd 100px vaba ruumi 4-ga ja saame, et 25px langeb ühele flex-grow ühikule. Selgub, et esimesele elemendile lisandub üks ühik flex-grow, see tähendab 25px, ja teisele - kolm ühikut, see tähendab 75px.

Esimese elemendi laius saab 125px, ja teise - 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; }

:

Näide

Oletame nüüd, et vanema laius on 400px, esimese elemendi laius 200px ja teise elemendi laius - 100px. Selgub, et vaba ruum on jälle võrdne 100px.

Määrame igale elemendile flex-grow, võrdse 1. Kokku saab 2, see tähendab, et 100px vaba ruumi tuleb jagada 2-ga. Selgub, et 50px langeb ühele aplususe ühikule.

Kuna kõigil elementidel on sama väärtus flex-grow, siis kõikidele elementidele lisandub sama väärtus, 50px. See tähendab, et esimene element muutub 250px ja teine muutub 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; }

:

Näide

Oletame jälle, et vanema laius on 400px, esimese elemendi laius 200px ja teise elemendi laius - 100px.

Määrame nüüd esimesele elemendile flex-grow väärtuseks 3 ja teisele - väärtuseks 1. Selgub, et aplusus kokku on 4. Siis on üks ühik aplusust võrdne 100px / 4 = 25px.

Esimesele elemendile lisandub 75px, ja see muutub 275px, ja teisele - 25px, see muutub 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; }

:

Praktilised ülesanded

Kõigis allpool olevates ülesannetes pakutakse teile mõnda koodi flex-elementidega, millel on laius ja flex-grow. Esitatud koodi põhjal arvutage, millised mõõtmed on igal elemendil. Seejärel käivitage kood ja kontrollige oma arvutusi, mõõtes tegelikke elementide laiusi.

<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: 3; } .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: 700px; height: 200px; border: 1px solid red; } .child { height: 50px; border: 1px solid green; } .elem1 { width: 100px; flex-grow: 1; } .elem2 { width: 100px; flex-grow: 2; } .elem3 { width: 200px; flex-grow: 3; }
<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: 100px; flex-grow: 1; } .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 class="child elem4">4</div> </div> .parent { display: flex; width: 1000px; height: 200px; border: 1px solid red; } .child { height: 50px; border: 1px solid green; } .elem1 { width: 200px; flex-grow: 1; } .elem2 { width: 100px; flex-grow: 2; } .elem3 { width: 100px; flex-grow: 4; } .elem4 { width: 100px; flex-grow: 3; }
Eesti
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Me kasutame saidi toimimiseks, analüüsi ja personaliseerimiseks küpsiseid. Andmete töötlemine toimub vastavalt Privaatsuspoliitikale.
nõustu kõigega häälesta keeldu