flex-shrinkプロパティは、フレックスコンテナ内のアイテムの縮み方の比率を指定する際に使用します。
例えば、4つの要素にそれぞれ幅50%を指定すると全部で幅200%となりますが、
フレックスボックスでは親要素のフレックスコンテナ内に子要素のフレックスアイテムが収まるように、各アイテムが縮められて自動調整されます。
flex-shrinkプロパティは、この際の各アイテムの縮み方の比率を、相対的に正の数値で指定します。
例えば、各アイテムのflex-shrinkプロパティの値を以下のように指定した場合、縮み方の比率は1:2:3:4になります。
これは、flex-shrink:1;を指定したアイテムよりも、flex-shrink:4;を指定したアイテムの方が4倍よく縮められるということです。
flex-shrinkプロパティの値に0を指定すると、そのアイテムは縮まなくなります。
flex-shrinkプロパティの値に、負の数値は指定できません。
尚、
flex-growプロパティ・
flex-shrinkプロパティ・
flex-basisプロパティについては、
各プロパティで個別に指定するのではなく、
これら3つの値をまとめて指定できるflexプロパティを使用することが推奨されています。
ul.sample_menu {
display:-webkit-flex;
display:flex;
width:100%;
list-style-type:none;
margin:0; padding:0;
}
ul.sample_menu a {
display:block;
margin:2px; padding:10px; font-size:10px;
background-color:#66cc99; color:#ffffff;
text-align:center;
text-decoration:none;
}
<ul class=”sample_menu”>
<li style=”flex-basis:50%; flex-shrink:1;”><a href=”#”>メニュー1</a></li>
<li style=”flex-basis:50%; flex-shrink:2;”><a href=”#”>メニュー2</a></li>
<li style=”flex-basis:50%; flex-shrink:3;”><a href=”#”>メニュー3</a></li>
<li style=”flex-basis:50%; flex-shrink:4;”><a href=”#”>メニュー4</a></li>
</ul>
flex …… フレックスコンテナ内のアイテムの幅についてまとめて指定する
flex-basis …… フレックスコンテナ内のアイテムの基本幅を指定する
flex-shrink …… フレックスコンテナ内のアイテムの縮み方の比率を指定する
flex-grow …… フレックスコンテナ内のアイテムの伸び方の比率を指定する