Caution
お使いのブラウザはJavaScriptが実行できない状態になっております。
当サイトはWebプログラミングの情報サイトの為、
JavaScriptが実行できない環境では正しいコンテンツが提供出来ません。
JavaScriptが実行可能な状態でご閲覧頂くようお願い申し上げます。
- トップページ
- CSSプロパティ辞典
- flex-basis
flex-basis
フレックスアイテムの基本サイズ(伸縮の計算基準となるサイズ)を指定します。『flex-grow』や『flex-shrink』による伸縮の前のサイズを決定します。
サンプルコード
/* 内容に基づく自動サイズ(初期値) */
.item { flex-basis: auto;}
/* 固定幅を指定 */
.item-fixed { flex-basis: 200px;}
/* パーセンテージで指定 */
.item-percent { flex-basis: 33.333%;}
/* 基本サイズを0にする(flex-growで均等分配する場合) */
.item-zero { flex-basis: 0;}
指定可能な値一覧
| 値 | 概要 |
|---|---|
| auto | アイテムの『width』(または『height』)の値を使います。それも指定されていない場合は内容に基づくサイズになります。初期値です。 |
| <length> | px、em、remなどの長さの値で指定します。 |
| <percentage> | コンテナの主軸方向のサイズに対するパーセンテージで指定します。 |
| 0 | 基本サイズを0にします。『flex-grow』で余白を均等に分配する際に使います。 |
| content | アイテムの内容に基づいたサイズにします。 |
仕様情報
| 項目 | 内容 |
|---|---|
| 初期値 | auto |
| 適用対象 | フレックスアイテム |
| 継承 | しない |
| アニメーション | 可能(length/percentage として補間。ただし『auto』との間は不可) |
対応ブラウザ
デスクトップ
28 △
27 △
26 △
25 △
24 △
23 △
22 △↑ prefix『-webkit-』が必要
21 以前 ×
21 以前 ×
7 △↑ prefix『-webkit-』が必要
6 以前 ×全バージョンで対応しています
8 ×
7 ×
6 ×
11 以前 ×モバイル
7 △↑ prefix『-webkit-』が必要
6 以前 ×
Android Browser
4.4 以降 ○
3 以前 ×デスクトップ版と同等の対応です
デスクトップ版と同等の対応です
概要
『flex-basis』はフレックスアイテムに指定するプロパティで、『flex-grow』や『flex-shrink』による伸縮が行われる前の基本サイズを指定します。『flex-direction: row』の場合は幅、『column』の場合は高さに対応します。
『flex-basis』と『width』の違い
フレックスアイテムでは『flex-basis』と『width』(または『height』)の両方が指定できますが、『flex-basis』が優先されます(『auto』を除く)。
| 指定 | 結果 |
|---|---|
| flex-basis: auto; width: 200px; | widthの200pxが使われます。 |
| flex-basis: 300px; width: 200px; | flex-basisの300pxが使われます。 |
| flex-basis: 0; width: 200px; | flex-basisの0が使われます。 |
フレックスアイテムのサイズ指定には、『width』よりも『flex-basis』(またはショートハンドの『flex』)を使うのが適切です。
パターン1: 均等幅のアイテム
/* flex-basis: 0で余白を完全均等に分配 */
.container { display: flex;}
.item {
flex-grow: 1;
flex-basis: 0;
/* または flex: 1; と書いても同じ */
}
『flex-basis: auto』のままだと、アイテムの内容の長さによってサイズが変わります。『flex-basis: 0』にすると内容に関係なく均等な幅になります。
パターン2: 最低幅付きの可変アイテム
/* 最低300pxを確保し、余白があれば伸長する */
.card {
flex: 1 1 300px; /* grow:1 shrink:1 basis:300px */
}
関連プロパティ
| プロパティ | 概要 |
|---|---|
| flex-grow | 伸長係数を指定します。『flex-basis』のサイズからどれだけ伸長するかを制御します。 |
| flex-shrink | 縮小係数を指定します。『flex-basis』のサイズからどれだけ縮小するかを制御します。 |
| flex | 『flex-grow』『flex-shrink』『flex-basis』の一括指定(ショートハンド)です。個別指定より『flex』の使用が推奨されています。 |
記事の間違いや著作権の侵害等ございましたらお手数ですがこちらまでご連絡頂ければ幸いです。