CSS 彈性盒子 Flexbox
Flexbox 基本概念
主軸與交叉軸
Flexbox 佈局基於兩個軸線:
- 主軸 (Main Axis): 由
flex-direction定義的軸線,flex items 沿著主軸排列 - 交叉軸 (Cross Axis): 垂直於主軸的軸線
flex-direction: row (預設)
┌─────────────────────────────────┐
│ ↓ Cross Axis │
│ ┌───┐ ┌───┐ ┌───┐ │
│ │ 1 │ │ 2 │ │ 3 │ → Main Axis │
│ └───┘ └───┘ └───┘ │
└─────────────────────────────────┘
flex-direction: column
┌─────────────────┐
│ → Cross Axis │
│ ┌───┐ │
│ │ 1 │ ↓ │
│ └───┘ │
│ ┌───┐ Main │
│ │ 2 │ Axis │
│ └───┘ │
│ ┌───┐ │
│ │ 3 │ │
│ └───┘ │
└─────────────────┘
容器與項目
- Flex Container: 設定
display: flex或display: inline-flex的父元素 - Flex Items: Flex Container 的直接子元素