Properti flex-shrink
Properti flex-shrink menentukan seberapa besar
blok flex akan menyusut relatif terhadap
elemen-elemen tetangga di dalam kontainer flex
jika ruang bebas tidak mencukupi.
Misalnya, jika semua blok flex di dalam kontainer flex
memiliki flex-shrink:1, maka mereka akan
berukuran sama. Jika salah satunya memiliki
flex-shrink:2, maka ukurannya akan 2
kali lebih kecil dari yang lainnya.
Berlaku untuk: blok flex spesifik.
Properti ini merupakan bagian dari properti singkatan
flex.
Sintaks
selektor {
flex-shrink: angka positif;
}
Nilai default: 1.
Contoh
Misalkan kita memiliki 3 elemen. Lebar masing-masing elemen
adalah 200px dan totalnya 600px,
yang lebih besar dari lebar kontainer induk, yaitu
350px:
<div class="parent">
<div class="child elem1">1</div>
<div class="child elem2">2</div>
<div class="child elem2">3</div>
</div>
.parent {
display: flex;
width: 350px;
height: 200px;
border: 1px solid red;
}
.child {
width: 200px;
height: 50px;
border: 1px solid green;
}
.elem1 {
flex-shrink: 1;
}
.elem2 {
flex-shrink: 2;
}
.elem3 {
flex-shrink: 3;
}
:
Mari hitung ruang bebas negatif dengan rumus:
600px - 350px = 250px
Total lebar tertimbang elemen
dengan mempertimbangkan nilai properti flex-shrink
untuk setiap elemen adalah:
200px * 1 + 200px * 2 + 200px * 3 = 1200px
Sekarang tentukan seberapa besar penyusutan elemen pertama:
250px * 1 (flex-shrink) * 200 (width) / 1200 = 41,6px
Elemen kedua:
250px * 2 (flex-shrink) * 200 (width) / 1200 = 83,3px
Elemen ketiga:
250px * 3 (flex-shrink) * 200 (width) / 1200 = 125px
Jadi, elemen ketiga, yang nilai
flex-shrink-nya adalah 3 akan menyusut lebih banyak
dibandingkan elemen lainnya.
Lihat juga
-
properti
flex-direction,
yang mengatur arah sumbu blok flex -
properti
justify-content,
yang mengatur perataan sepanjang sumbu utama -
properti
align-items,
yang mengatur perataan sepanjang sumbu silang -
properti
flex-wrap,
yang mengatur multi-baris blok flex -
properti
flex-flow,
singkatan untuk flex-direction dan flex-wrap -
properti
order,
yang mengatur urutan blok flex -
properti
align-self,
yang mengatur perataan satu blok -
properti
flex-basis,
yang mengatur ukuran blok flex spesifik -
properti
flex-grow,
yang mengatur "keserakahan" blok flex -
properti
flex,
singkatan untuk flex-grow, flex-shrink dan flex-basis