CSS Flexbox 弹性レイアウト チートシート
Flexbox (Flexible Box) レイアウト モデルは、コンテナ内のアイテムのサイズが不明であったり動的であったりする場合でも、アイテムを効率的に配置し、スペースを分配する方法を提供します。
コンテナ属性 (Flex Container)
Set on parent: display: flex; or display: inline-flex;
| 属性 | 説明 | 一般的な値 |
|---|---|---|
flex-direction |
主軸の方向 | row, row-reverse, column, column-reverse |
flex-wrap |
折り返し | nowrap, wrap, wrap-reverse |
flex-flow |
方向と折り返しの省略形 | row wrap |
justify-content |
主軸上の配置方法 | flex-start, flex-end, center, space-between, space-around |
align-items |
交差軸上の配置方法 | flex-start, flex-end, center, baseline, stretch |
align-content |
複数行の交差軸上の配置 | flex-start, flex-end, center, space-between, stretch |
アイテム属性 (Flex Items)
Set on children:
| 属性 | 説明 | デフォルト |
|---|---|---|
order |
並び順 (値が小さいほど前方) | 0 |
flex-grow |
伸長係数 (スペースに余裕がある場合) | 0 |
flex-shrink |
収縮係数 (スペースが不足する場合) | 1 |
flex-basis |
スペース分配前のベースサイズ | auto |
flex |
grow, shrink, basis の省略形 | 0 1 auto |
align-self |
個別のアイテムに異なる配置を許可する | auto |
コア概念の図解
- 主軸 (Main Axis): デフォルトは水平方向、flex-direction で決定されます。
- 交差軸 (Cross Axis): 主軸に垂直な方向。
シーン例
水平垂直中央揃え
.container {
display: flex;
justify-content: center;
align-items: center;
height: 100vh;
}等幅分布
.item {
flex: 1; /* 残りのスペースを均等に占める */
}両端揃え
.navbar {
display: flex;
justify-content: space-between;
}