⊗mkSpFxGr 86 of 128 menu

Kerakusan Elemen Flex di CSS

Misalkan sekarang kita memiliki dua blok flex, yang disusun dalam satu baris. Blok-blok ini memiliki lebar 100px, dan induknya - 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; }

:

Seperti yang Anda lihat, total lebar elemen kita lebih kecil dari lebar induk, sehingga di sebelah kanan tersisa ruang kosong.

Jika diinginkan, ruang kosong ini dapat dibagi secara proporsional di antara elemen-elemen kita. Ini dilakukan dengan menggunakan properti flex-grow, yang diberikan kepada elemen flex. Nilai dari properti ini adalah angka tanpa satuan.

Mari kita lihat dalam praktiknya, bagaimana cara kerja properti ini.

Contoh

Saat ini kita memiliki dua blok flex dengan lebar 100px. Total lebar elemen mereka 200px, dan lebar induk - 300px. Artinya, tersisa ruang kosong sebesar 100px.

Jika elemen tidak diberikan flex-grow, maka kita hanya akan melihat ruang kosong ini. Namun jika diberikan, maka lebar elemen yang sebenarnya akan lebih besar dari yang ditetapkan - mereka akan secara proporsional membagi ruang kosong di antara themselves dan menambahkannya ke lebar mereka.

Sebagai contoh, misalkan elemen pertama memiliki flex-grow sebesar 1, dan elemen kedua - 3. Mari kita hitung, bagian ruang kosong mana yang akan didapat oleh setiap elemen.

Pertama, perlu mendapatkan total jumlah unit flex-grow dari semua elemen kita. Pada elemen pertama nilainya 1, dan pada elemen kedua - 3. Artinya, totalnya adalah 4.

Sekarang bagilah 100px ruang kosong dengan 4 dan dapatkan bahwa 25px merupakan satu unit flex-grow. Hasilnya, pada elemen pertama akan ditambahkan satu unit flex-grow, yaitu 25px, sedangkan pada elemen kedua - tiga unit, yaitu 75px.

Lebar elemen pertama akan menjadi 125px, dan elemen kedua - 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; }

:

Contoh

Misalkan sekarang lebar induk adalah 400px, lebar elemen pertama 200px, dan lebar elemen kedua - 100px. Hasilnya, ruang kosong lagi-lagi sebesar 100px.

Mari kita berikan flex-grow kepada setiap elemen, sebesar 1. Totalnya akan menjadi 2, artinya 100px ruang kosong perlu dibagi dengan 2. Hasilnya, 50px merupakan satu unit kerakusan.

Karena semua elemen memiliki nilai flex-grow yang sama, maka semua elemen akan bertambah nilai yang sama sebesar 50px. Artinya, elemen pertama akan menjadi 250px, dan elemen kedua akan menjadi 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; }

:

Contoh

Misalkan lagi lebar induk adalah 400px, lebar elemen pertama 200px, dan lebar elemen kedua - 100px.

Sekarang mari kita atur elemen pertama flex-grow ke nilai 3, dan elemen kedua - ke nilai 1. Hasilnya, total kerakusan adalah 4. Maka satu unit kerakusan sama dengan 100px / 4 = 25px.

Elemen pertama akan bertambah 75px, dan menjadi 275px, sedangkan elemen kedua - 25px, menjadi 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; }

:

Tugas Praktis

Dalam semua tugas di bawah ini, Anda akan diberikan beberapa kode dengan elemen flex yang memiliki lebar dan flex-grow. Berdasarkan kode yang diberikan, hitunglah ukuran yang akan dimiliki setiap elemen. Kemudian jalankan kode dan periksa perhitungan Anda dengan mengukur lebar elemen yang sebenarnya.

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