⊗mkSpFxGr 86 of 128 menu

Ketamakan Unsur Flex dalam CSS

Katakan sekarang kita ada dua blok flex, disusun dalam baris. Blok-blok ini diberikan lebar 100px, dan ibu bapa mereka - 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, jumlah lebar unsur kami kurang daripada lebar ibu bapa, jadi terdapat ruang kosong di sebelah kanan.

Jika dikehendaki, ruang kosong ini boleh diagihkan secara berkadar antara unsur kami. Ini dilakukan dengan menggunakan sifat flex-grow, yang ditetapkan untuk unsur flex. Nilai sifat ini adalah nombor tanpa dimensi.

Mari kita lihat dalam praktik, bagaimana sifat ini berfungsi.

Contoh

Sekarang kita ada dua blok flex dengan lebar 100px. Jumlah lebar unsur 200px, dan lebar ibu bapa - 300px. Ini bermakna terdapat ruang kosong sebanyak 100px.

Jika unsur tidak diberikan flex-grow, maka kita hanya akan melihat ruang kosong ini. Jika ia diberikan, maka lebar sebenar unsur akan lebih besar daripada yang ditetapkan - mereka secara berkadar membahagikan ruang kosong antara mereka sendiri dan menambahkannya kepada lebar mereka.

Sebagai contoh, katakan unsur pertama mempunyai flex-grow sama dengan 1, dan yang kedua - 3. Mari kira, bahagian ruang kosong mana yang akan diperoleh setiap unsur.

Pertama, perlu mendapatkan jumlah unit flex-grow semua unsur kami. Unsur pertama ialah 1, dan yang kedua - 3. Ini bermakna secara jumlah ia sama dengan 4.

Sekarang bahagikan 100px ruang kosong dengan 4 dan dapatkan bahawa 25px diperuntukkan kepada satu unit flex-grow. Ini bermakna, kepada unsur pertama akan ditambah satu unit flex-grow, iaitu 25px, dan kepada yang kedua - tiga unit, iaitu 75px.

Lebar unsur pertama akan menjadi 125px, dan yang 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

Katakan sekarang lebar ibu bapa sama dengan 400px, lebar unsur pertama 200px, dan lebar unsur kedua - 100px. Ini bermakna, ruang kosong sekali lagi sama dengan 100px.

Mari kita tetapkan flex-grow untuk setiap unsur, sama dengan 1. Jumlahnya akan menjadi 2, iaitu 100px ruang kosong perlu dibahagikan dengan 2. Ini bermakna 50px diperuntukkan untuk satu unit ketamakan.

Oleh kerana semua unsur mempunyai nilai flex-grow yang sama, maka semua unsur akan ditambah nilai yang sama sebanyak 50px. Ini bermakna, unsur pertama akan menjadi 250px, dan yang 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

Katakan sekali lagi lebar ibu bapa sama dengan 400px, lebar unsur pertama 200px, dan lebar unsur kedua - 100px.

Sekarang mari kita tetapkan untuk unsur pertama flex-grow kepada nilai 3, dan yang kedua - kepada nilai 1. Ini bermakna ketamakan secara jumlah sama dengan 4. Kemudian satu unit ketamakan sama dengan 100px / 4 = 25px.

Kepada unsur pertama akan ditambah 75px, dan ia akan menjadi 275px, dan kepada yang kedua - 25px, ia akan 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; }

:

Masalah Praktikal

Dalam semua masalah di bawah, anda akan dibentangkan dengan beberapa kod dengan unsur flex yang mempunyai lebar dan flex-grow. Berdasarkan kod yang dibentangkan, kira saiz yang akan dimiliki setiap unsur. Kemudian jalankan kod dan semak pengiraan anda dengan mengukur lebar sebenar unsur.

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