Rumah > hujung hadapan web > tutorial css > Bagaimanakah Margin Mempengaruhi Saiz Flex-Grow dalam Reka Letak Flexbox?

Bagaimanakah Margin Mempengaruhi Saiz Flex-Grow dalam Reka Letak Flexbox?

Linda Hamilton
Lepaskan: 2024-12-17 22:00:17
asal
445 orang telah melayarinya

How Does Margin Affect Flex-Grow Sizing in Flexbox Layouts?

Saiz Elemen Flex Menggunakan Flex-Grow

Dalam susun atur flexbox, item flex bersaiz mengikut flex-grow mereka harta benda, yang menentukan jumlah ruang kosong yang perlu diduduki oleh setiap item. Walau bagaimanapun, terdapat faktor tertentu yang boleh mempengaruhi saiz pengiraan item fleksibel, termasuk kandungan dan margin.

Gambaran Keseluruhan Isu

Pertimbangkan kod berikut:

.numbers {
    display: flex;
    flex-direction: column;
}

.row {
    display: flex;
    flex-direction: row;
    flex-grow: 1;
    justify-content: space-between;
}

.button {
    display: flex;
    flex-grow: 1;
    justify-content: center;
    align-items: center;
    margin: 5px;
    border-radius: 5px;
    border: 1px solid gray;
    background: rgba(255, 255, 255, 0.2);
    cursor: pointer;
}

#number0 {
    flex-grow: 2;
}

#colon {
    flex-grow: 1;
}
Salin selepas log masuk
<div class="numbers">
    <div class="row">
        <div class="button number">
Salin selepas log masuk

Dalam contoh ini, kami menjangkakan butang "0" dua kali lebih lebar daripada butang lain, dan butang bertindih separuh lebar. Walau bagaimanapun, penjajaran butang ini nampaknya terkeluar sedikit.

Punca Isu

Isu timbul kerana ruang yang tersedia pada setiap baris ditentukan oleh jumlah lebar butang dan jidar yang digunakan padanya. Dalam contoh kami, tiga baris pertama mempunyai dua margin mendatar setiap satu, manakala baris keempat hanya mempunyai satu. Ini menyebabkan baris keempat mempunyai lebih banyak ruang kosong daripada baris lain, yang menjejaskan pengagihan ruang antara item fleksibel.

Menggunakan Flex-Basis untuk Saiz Lebih Boleh Dipercayai

Untuk menangani isu ini, adalah disyorkan untuk menggunakan flex-basis dan bukannya flex-grow untuk saiz item flex yang lebih dipercayai. Flex-basis menetapkan saiz awal item, dengan mengambil kira kandungan dan marginnya. Dengan menyatakan asas-flex untuk setiap butang, kami boleh memastikan bahawa kesemuanya diberi jumlah ruang yang sama, tanpa mengira jidar.

Berikut ialah kod yang diperbetulkan:

.button {
    flex-basis: 33.33%;
}

#number0 {
    flex-basis: calc(66.67% + 10px);
}

* {
    box-sizing: border-box;
}
Salin selepas log masuk

Oleh mengemas kini asas fleksibel, kita boleh mencapai penjajaran butang yang diingini, dengan butang "0" adalah dua kali lebih lebar daripada butang lain dan butang kolon menjadi separuh lebar.

Atas ialah kandungan terperinci Bagaimanakah Margin Mempengaruhi Saiz Flex-Grow dalam Reka Letak Flexbox?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan