Īpašība flex-shrink

Īpašība flex-shrink nosaka to, cik ļoti flex-bloks tiks samazināts attiecībā pret kaimiņelementiem flex-konteinerā brīvās vietas trūkuma gadījumā.

Piemēram, ja visiem flex-blokiem flex-konteinerā ir flex-shrink:1, tad tie visi būs vienāda izmēra. Ja vienam no tiem ir flex-shrink:2, tad tas būs 2 reizes mazāks nekā pārējie.

Attiecas uz: konkrētu flex bloku.

Šī īpašība ietilpst kā sastāvdaļa saīsinātajā īpašībā flex.

Sintakse

cssselektors {
  flex-shrink: pozitīvs skaitlis;
}

Noklusējuma vērtība: 1.

Piemērs

Pieņemsim, ka mums ir 3 elementi. Katra no tiem platums ir 200px un kopā tie ir 600px, kas ir vairāk nekā vecākkonta platums, kurš ir 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;
}

Результат:

Aprēķināsim negatīvo brīvo telpu pēc formulas:

600px - 350px = 250px

Kopējais svērtais elementu platums ņemot vērā īpašības flex-shrink vērtības katram elementam būs:

200px * 1 + 200px * 2 + 200px * 3 = 1200px

Tagad noteiksim, cik daudz samazināsies pirmais elements:

250px * 1 (flex-shrink) * 200 (width) / 1200 = 41,6px

Otrais elements:

250px * 2 (flex-shrink) * 200 (width) / 1200 = 83,3px

Trešais elements:

250px * 3 (flex-shrink) * 200 (width) / 1200 = 125px

Izrādās, ka trešais elements, kuram īpašības flex-shrink vērtība ir 3, samazināsies vairāk nekā pārējie elementi.

Skatiet arī

  • īpašība flex-direction,
    kas nosaka flex bloku asu virzienu
  • īpašība justify-content,
    kas nosaka izlīdzināšanu pa galveno asi
  • īpašība align-items,
    kas nosaka izlīdzināšanu pa šķērsasi
  • īpašība flex-wrap,
    kas nosaka flex bloku daudzrinduīgumu
  • īpašība flex-flow,
    saīsinājums priekš flex-direction un flex-wrap
  • īpašība order,
    kas nosaka flex bloku secību
  • īpašība align-self,
    kas nosaka viena bloka izlīdzināšanu
  • īpašība flex-basis,
    kas nosaka konkrēta flex bloka izmēru
  • īpašība flex-grow,
    kas nosaka flex bloku "alkatību"
  • īpašība flex,
    saīsinājums priekš flex-grow, flex-shrink un flex-basis