Flex レイアウトプロパティ

最終更新:2026-09-13

flex Flex レイアウトプロパティ

flex プロパティは、CSS の Flexible Box Layout モジュールの中核となるショートハンドです。これは flex アイテムがどれだけ伸縮し、コンテナー内の残りの空間に対してどのくらいのスペースを占めるかを設定します。flex-grow・flex-shrink・flex-basis のショートハンドであり、それぞれアイテムの拡大率・縮小率・主軸方向の初期サイズを制御します。flex を使えば、等幅カラムや可変幅、流れるような配置といった一般的なレイアウトを簡単に構築できます。

カテゴリ
初期値0 1 auto
継承いいえ
適用対象flex アイテム
アニメーションタイプlength
CSS バージョンCSS3
状態標準

📝 構文

flex: none | auto | initial | <flex-grow> <flex-shrink>? <flex-basis>?;

⚙️ 値

タイプ説明
none | auto | initialキーワードあらかじめ定義された flex 値。
<flex-grow> <flex-shrink>? <flex-basis>?flex-grow/flex-shrink/flex-basis の値。

▶ 例

以下のコードを編集して、プレイグラウンドでライブ結果を確認してください:

🌐 ブラウザーサポート

ブラウザー ChromeChrome EdgeEdge FirefoxFirefox SafariSafari OperaOpera
flex v29 v12 v28 v9 v17
すべての主要ブラウザーでサポート
ヒント: flex: 1; は flex: 1 1 0% のショートハンドです。アイテムは伸縮可能で、基本サイズを 0 から始めるため、残りの空間を均等に分け合わせる定番の書き方です。
注意: flex: none; は flex: 0 0 auto と同等です。アイテムは伸縮せず、内容や明示的な width/height だけでサイズが決まります。固定幅のサイドバーやボタンに使います。

❓ よくある質問

Qflex: 1 と flex: auto の違いは?
Aflex: 1 は flex: 1 1 0% のショートハンドです。基本サイズが 0 なので、全体の幅が比例で再分配され、複数の flex: 1 アイテムは厳密に等しい幅になります。一方 flex: auto は flex: 1 1 auto のショートハンドで、各アイテムはまず内容や width からサイズが決まり、残りの空間が比例で分けられるため、内容が多いアイテムほど広くなります。等分割には flex: 1 を、内容に応じたサイズにしたい場合は flex: auto を使います。
Qflex ショートハンドを使うべきか、それとも個別のサブプロパティを使うべきですか?
A大半の場合は flex ショートハンドの方が望ましいです。なぜなら flex-grow・flex-shrink・flex-basis を 1 つの宣言で設定でき、flex-grow だけを書いたときに flex-basis がデフォルトの 0 に戻るという思わぬ挙動を防げるからです。また意図がひと目で伝わり、基本サイズが明示されるため、散らばった 3 つの宣言より確認しやすくなります。個別のサブプロパティを使うのは、メディアクエリ内で flex-basis だけを変更するといった単一プロパティの上書きが必要な場合だけです。
Qflex: 1 のアイテム内のテキストが折り返されたり潰されたりするのはなぜですか?
Aこれは flex アイテムのデフォルト min-width: auto が原因です。空間が足りなくなると、アイテムの最小サイズは内容から導かれるため、長いテキストがあるとアイテムが広がったままになり、テキストが折り返えたりあふれたりします。解決策は、アイテムに min-width: 0(column 方向なら min-height: 0)を設定し、overflow: hidden と text-overflow: ellipsis を組み合わせて 1 行の省略表示にすることです。

📚 関連チュートリアル

Web-Tutorial.com

Web-Tutorial 技術チーム

複数の開発者によって共同維持されているプログラミングチュートリアルプラットフォーム。各チュートリアルは専門分野の開発者が執筆・レビューしています。正確で信頼性の高いコンテンツを目指しています — 問題を見つけた場合はお知らせください。

100%