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

cssselektor {
  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:

html<div class="parent">
  <div class="child elem1">1</div>
  <div class="child elem2">2</div>
  <div class="child elem2">3</div>
</div>
css.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