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