Egenskapen flex-shrink

Egenskapen flex-shrink bestämmer hur mycket ett flex-block kommer att minskas i förhållande till intilliggande element inuti en flex-container när det inte finns tillräckligt med ledigt utrymme.

Till exempel, om alla flex-block inuti en flex-container har flex-shrink:1, kommer de att ha samma storlek. Om ett av dem har flex-shrink:2, kommer det att vara 2 gånger mindre än alla andra.

Tillämpas på: ett specifikt flex-block.

Denna egenskap ingår som en del av genvägsegenskapen flex.

Syntax

cssselektor {
  flex-shrink: positivt tal;
}

Standardvärde: 1.

Exempel

Låt oss säga att vi har 3 element. Bredden på var och en av dem är 200px och tillsammans är de 600px, vilket är mer än bredden på föräldracontainern, som är 350px:

html<div class="parent">
  <div class="child elem1">1</div>
  <div class="child elem2">2</div>
  <div class="child elem3">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;
}

Результат:

Låt oss beräkna det negativa lediga utrymmet med formeln:

600px - 350px = 250px

Den totala viktade bredden på elementen med hänsyn till värdena för egenskapen flex-shrink för varje element kommer att vara:

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

Låt oss nu bestämma hur mycket det första elementet kommer att minskas:

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

Andra elementet:

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

Tredje elementet:

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

Det visar sig att det tredje elementet, vars värde för flex-shrink är 3, kommer att minskas mer än de andra elementen.

Se även

  • egenskapen flex-direction,
    som sätter riktningen på flex-blockens axlar
  • egenskapen justify-content,
    som sätter justering längs huvudaxeln
  • egenskapen align-items,
    som sätter justering längs tväraxeln
  • egenskapen flex-wrap,
    som sätter flerradighet för flex-block
  • egenskapen flex-flow,
    genväg för flex-direction och flex-wrap
  • egenskapen order,
    som sätter ordningen på flex-block
  • egenskapen align-self,
    som sätter justering av ett enskilt block
  • egenskapen flex-basis,
    som sätter storleken på ett specifikt flex-block
  • egenskapen flex-grow,
    som sätter "girighet" hos flex-block
  • egenskapen flex,
    genväg för flex-grow, flex-shrink och flex-basis