De eigenschap flex-shrink

De eigenschap flex-shrink bepaalt in welke mate een flex-blok zal krimpen ten opzichte van de aangrenzende elementen binnen de flex-container bij gebrek aan vrije ruimte.

Als bijvoorbeeld alle flex-blokken binnen een flex-container flex-shrink:1 hebben, dan zullen ze even groot zijn. Als een van hen flex-shrink:2 heeft, dan zal deze 2 keer kleiner zijn dan alle anderen.

Is van toepassing op: een specifiek flex-blok.

Deze eigenschap maakt deel uit van de shorthand-eigenschap flex.

Syntaxis

cssselector {
  flex-shrink: positief getal;
}

Standaardwaarde: 1.

Voorbeeld

Stel we hebben 3 elementen. De breedte van elk is 200px en samen zijn ze 600px, wat meer is dan de breedte van de bovenliggende container, die 350px is:

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;
}

Результат:

Laten we de negatieve vrije ruimte berekenen met de formule:

600px - 350px = 250px

De totale gewogen breedte van de elementen rekening houdend met de waarden van de eigenschap flex-shrink voor elk element is:

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

Laten we nu bepalen hoeveel het eerste element krimpt:

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

Tweede element:

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

Derde element:

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

Hieruit blijkt dat het derde element, waarvan de waarde flex-shrink 3 is, meer krimpt dan de andere elementen.

Zie ook

  • de eigenschap flex-direction,
    die de richting van de assen van flex-blokken bepaalt
  • de eigenschap justify-content,
    die de uitlijning langs de hoofdas bepaalt
  • de eigenschap align-items,
    die de uitlijning langs de cross-as bepaalt
  • de eigenschap flex-wrap,
    die het afbreken van flex-blokken over meerdere regels bepaalt
  • de eigenschap flex-flow,
    shorthand voor flex-direction en flex-wrap
  • de eigenschap order,
    die de volgorde van flex-blokken bepaalt
  • de eigenschap align-self,
    die de uitlijning van een enkel blok bepaalt
  • de eigenschap flex-basis,
    die de grootte van een specifiek flex-blok bepaalt
  • de eigenschap flex-grow,
    die de "groei" van flex-blokken bepaalt
  • de eigenschap flex,
    shorthand voor flex-grow, flex-shrink en flex-basis