Flexアイテムの萎縮率
主軸方向のFlexアイテムの超過しているFlexコンテナーの幅から分割して、Flexアイテムへ割り振るには、flex-shrink
プロパティを使用します。
例えば、1つ目のFlexアイテムに対してflex-shrinkを0、2つ目のFlexアイテムに対してflex-shrinkを2に設定した場合は、超過している幅をflex-shrinkの値を合計した分等幅で分割し、2つ目のFlexアイテムには分割した2つ分の幅、3つ目のFlexアイテムには分割した1つ分の幅が縮小されます。
Internet Explorer 10では、ショートハンドである-ms-flex
プロパティか、-ms-flex-negative
プロパティを使用します。
なお、flex-shrinkプロパティはショートハンドであるflexプロパティの2番目の指定にあたります。
- ※ 未指定の値を正しく設定するため、flexプロパティを使用することを推奨しています。
- ※
box-sizing
プロパティの値がcontent-box
以外だと自動調整されてしまいますので、ご注意ください。
構文
flex:flex-grow 萎縮率 flex-basis;
または
flex-shrink:萎縮率;
プロパティ名 | 初期値 | 適用範囲 | 継承 | 設定可能値 |
---|---|---|---|---|
flex-shrink | 1 | Flexアイテム | しない | 数値 |
サンプルコード
次のサンプルでは、0:1:2の割合で指定した例です。
item 1
item 2
item 3
CSS
.flex-container {
display:-webkit-box;
display:-moz-box;
display:-ms-flexbox;
display:-webkit-flex;
display:-moz-flex;
display:flex;
}
.flex-item {
width:33%;
}
.flex-item:nth-child(1) {
-ms-flex-negative:0;
-webkit-flex:0 0 auto;
-moz-flex:0 0 auto;
flex:0 0 auto;
}
.flex-item:nth-child(2) {
-ms-flex-negative:1;
-webkit-flex:0 1 auto;
-moz-flex:0 1 auto;
flex:0 1 auto;
}
.flex-item:nth-child(3) {
-ms-flex-negative:2;
-webkit-flex:0 2 auto;
-moz-flex:0 2 auto;
flex:0 2 auto;
}
次のサンプルでは、1つ目のFlexアイテムのみを指定した例です。
item 1
item 2
item 3
CSS
.flex-container {
display:-webkit-box;
display:-moz-box;
display:-ms-flexbox;
display:-webkit-flex;
display:-moz-flex;
display:flex;
}
.flex-item:first-child {
-ms-flex-negative:3;
-webkit-flex:0 3 auto;
-moz-flex:0 3 auto;
flex:0 3 auto;
}
シミュレーション
- 1
- 2
- 3
- 4
- 5