⊗mkSpFxGr 86 of 128 menu

CSS-ի ֆլեքս տարրերի ագահություն

Ենթադրենք, հիմա մենք ունենք երկու ֆլեքս-բլոկ, որոնք դասավորված են շարքով: Այս բլոկներին տրված է լայնություն 100px, իսկ նրանց ծնողին - 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; }

:

Ինչպես տեսնում եք, մեր տարրերի ընդհանուր լայնությունը փոքր է ծնողի լայնությունից, ուստի աջում մնում է դատարկ տարածություն:

Անհրաժեշտության դեպքում այդ դատարկ տարածությունը կարելի է համամասնորեն բաժանել մեր տարրերի միջև: Դա արվում է flex-grow հատկության միջոցով, որը նշվում է ֆլեքս-տարրերին: Այս հատկության արժեքը չափազուրկ թիվ է:

Եկեք գործնականում տեսնենք, թե ինչպես է աշխատում այս հատկությունը:

Օրինակ

Այժմ մենք ունենք երկու ֆլեքս-բլոկ 100px լայնությամբ: Տարրերի ընդհանուր լայնությունը 200px, իսկ ծնողի լայնությունը - 300px: Ստացվում է, որ մնում է ազատ տարածություն 100px:

Եթե տարրերին չի տրվել flex-grow, ապա մենք պարզապես կտեսնենք այդ ազատ տարածությունը: Իսկ եթե այն նշված է, ապա տարրերի իրական լայնությունը կլինի ավելի մեծ, քան նշվածը - դրանք համամասնորեն կբաժանեն ազատ տարածությունը իրենց միջև և կավելացնեն այն իրենց լայնությանը:

Օրինակի համար, ենթադրենք առաջին տարրի flex-grow հավասար է 1, իսկ երկրորդինը - 3: Եկեք հաշվարկենք, թե ազատ տարածության որ մասը կստանա յուրաքանչյուր տարր:

Նախ պետք է ստանալ բոլոր մեր տարրերի flex-grow միավորների ընդհանուր քանակը: Առաջին տարրի համար այն հավասար է 1, իսկ երկրորդի համար - 3: Սա նշանակում է, որ ընդհանուրում այն հավասար է 4:

Այժմ 100px ազատ տարածությունը բաժանենք 4-ի և կստանանք, որ 25px է մեկ միավոր flex-grow-ին: Կստացվի, որ առաջին տարրին կավելացվի մեկ միավոր flex-grow, այսինքն 25px, իսկ երկրորդինը - երեք միավոր, այսինքն 75px:

Առաջին տարրի լայնությունը կլինի 125px, իսկ երկրորդինը - 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; }

:

Օրինակ

Ենթադրենք, հիմա ծնողի լայնությունը հավասար է 400px, առաջին տարրի լայնությունը 200px, իսկ երկրորդ տարրի լայնությունը - 100px: Կստացվի, որ ազատ տարածությունը կրկին հավասար է 100px:

Եկեք յուրաքանչյուր տարրի տանք flex-grow, հավասար 1: Ընդհանուրում կստացվի 2, այսինքն 100px ազատ տարածությունը պետք է բաժանել 2-ի: Կստացվի, որ 50px է բաժին հասնում մեկ միավոր ագահությանը:

Քանի որ բոլոր տարրերն ունեն flex-grow-ի նույն արժեքը, ապա բոլոր տարրերին կավելացվի նույն արժեքը՝ 50px: Սա նշանակում է, որ առաջին տարրը կդառնա 250px, իսկ երկրորդը կդառնա 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; }

:

Օրինակ

Ենթադրենք, կրկին ծնողի լայնությունը հավասար է 400px, առաջին տարրի լայնությունը 200px, իսկ երկրորդ տարրի լայնությունը - 100px:

Եկեք հիմա առաջին տարրի համար սահմանենք flex-grow 3 արժեքով, իսկ երկրորդինը - 1 արժեքով: Կստացվի, որ ագահությունը ընդհանուրում հավասար է 4: Այդ դեպքում մեկ միավոր ագահությունը հավասար է 100px / 4 = 25px:

Առաջին տարրին կավելացվի 75px, և այն կդառնա 275px, իսկ երկրորդին - 25px, այն կդառնա 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; }

:

Գործնական առաջադրանքներ

Ստորև ներկայացված բոլոր առաջադրանքներում ձեզ կներկայացվի որոշակի կոդ ֆլեքս-տարրերով, որոնք ունեն լայնություն և 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: 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; }
Հայերեն
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Մենք օգտագործում ենք cookie-ներ կայքի աշխատանքի, վերլուծության և անհատականացման համար։ Տվյալների մշակումը կատարվում է համաձայն Գաղտնիության քաղաքականության։
ընդունել բոլորը կարգավորել մերժել