




flexプロパティは、フレックスコンテナ内のアイテムの幅についてまとめて指定する際に使用します。
flex-growプロパティ・
flex-shrinkプロパティ・
flex-basisプロパティ の値を、flexプロパティ一つでまとめて指定できるので便利です。
適用対象となるボックスがフレックスアイテムの場合、そのボックスのサイズの決定に際してflexプロパティの指定が参照されます。
適用対象がフレックスアイテム以外の場合には、flexプロパティの指定は無効となります。
フレックスアイテムとは、フレックスコンテナ内のアイテムのことです。
具体的に言うと、display:flex; を指定したボックスがフレックスボックス、その子要素がフレックスアイテムです。
以下に、それぞれの値の指定内容について確認します。
flex-growプロパティの値
flex-growプロパティの値では、フレックスコンテナ内のアイテムの伸び方の比率を指定します。
フレックスコンテナの横幅に対して、フレックスコンテナの横幅の合計が短くて余白がある場合、
flex-growプロパティの指定に応じた比率で各フレックスアイテムが自動的に伸ばされて余白が埋められます。
初期値は0です。値が0のままだと、そのフレックスアイテムは伸ばされません。
flex-shrinkプロパティの値
flex-shrinkプロパティの値では、フレックスコンテナ内のアイテムの縮み方の比率を指定します。
フレックスコンテナの横幅に対してフレックスアイテムの横幅の合計が大きい場合、
flex-shrinkプロパティの指定に応じた比率で各フレックスアイテムが自動的に縮められて、フレックスコンテナの幅に収められます。
初期値は1です。値に0を指定すると、そのフレックスアイテムは縮まなくなります。
flex-basisプロパティの値
flex-basisプロパティの値では、フレックスコンテナ内のアイテムの基本幅を指定します。
必ず指定した幅で表示されるわけではなく、他の指定との兼ね合いでフレックスコンテナ内におさまるように自動調整されます。
初期値はautoです。
■値
- 各プロパティの値を半角スペース区切りで指定
- flex-growの値 flex-shrinkの値 flex-basisの値(初期値は0 1 auto)
- initial
- 「0 1 auto」と同じ。フレックスアイテムは伸びない/縮む。
- auto
- 「1 1 auto」と同じ。フレックスアイテムは伸びる/縮む。
- none
- 「0 0 auto」と同じ。フレックスアイテムは伸びない/縮まない。
■初期値・適用対象・値の継承
- 初期値
- 0 1 auto
- 適用対象
- フレックスコンテナ内のアイテム
- 値の継承
- しない
■使用例
CSSソース
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;
}
HTMLソース
<p>initialは伸びない/縮む、autoは伸びる/縮む、noneは伸びない/縮まない。という理解で良いと思われます。</p>
<ul class=”sample_menu”>
<li style=”flex:0 1 100px;”><a href=”#”>100ピクセル</a></li>
<li style=”flex:initial;”><a href=”#”>初期値</a></li>
<li style=”flex:auto;”><a href=”#”>自動</a></li>
<li style=”flex:none;”><a href=”#”>なし</a></li>
</ul>
<ul class=”sample_menu”>
<li style=”flex:0 1 1000px;”><a href=”#”>1000ピクセル</a></li>
<li style=”flex:initial;”><a href=”#”>初期値</a></li>
<li style=”flex:auto;”><a href=”#”>自動</a></li>
<li style=”flex:none;”><a href=”#”>なし</a></li>
</ul>
ブラウザ上の表示
initialは伸びない/縮む、autoは伸びる/縮む、noneは伸びない/縮まない。という理解で良いと思われます。
■関連項目
フレックスアイテムの幅
flex …… フレックスコンテナ内のアイテムの幅についてまとめて指定する
flex-basis …… フレックスコンテナ内のアイテムの基本幅を指定する
flex-shrink …… フレックスコンテナ内のアイテムの縮み方の比率を指定する
flex-grow …… フレックスコンテナ内のアイテムの伸び方の比率を指定する