diff --git "a/\350\251\271\345\256\207\350\210\252/20241028-flex\345\270\203\345\261\200.md" "b/\350\251\271\345\256\207\350\210\252/20241028-flex\345\270\203\345\261\200.md" new file mode 100644 index 0000000000000000000000000000000000000000..578046945eeebadfe5f19f2d5acba61da8018c4a --- /dev/null +++ "b/\350\251\271\345\256\207\350\210\252/20241028-flex\345\270\203\345\261\200.md" @@ -0,0 +1,385 @@ +## flex布局 + +给父容器加一个 `display: flex`属性 + +子元素们会**在水平方向上,从左至右排列** + +### flex 布局的优势 + +1、**flex 布局的子元素不会脱离文档流** + +2、**flex 是一种现代的布局方式,是 W3C 第一次提供真正用于布局的 CSS 规范**。 flex 非常提供了丰富的属性,非常灵活,让布局的实现更佳多样化,且方便易用。 + +### 概念:弹性盒子、子元素 + +- **弹性盒子**:指的是使用 `display:flex` 或 `display:inline-flex` 声明的**父容器**。 + +- **子元素/弹性元素**:指的是父容器里面的子元素们(父容器被声明为 flex 盒子的情况下)。 + +### 概念:主轴和侧轴 + +- 主轴:flex容器的主轴,默认是水平方向,从左向右。 + +- 侧轴:与主轴垂直的轴称作侧轴,默认是垂直方向,从上往下。 + +PS:主轴和侧轴并不是固定不变的,可以通过 `flex-direction` 更换方向 + +## 弹性盒子 + +### 声明定义 + +使用 `display:flex` 或 `display:inline-flex` 声明一个**父容器**为弹性盒子。此时,这个父容器里的子元素们,会遵循弹性布局。 + +备注:一般是用 `display:flex`这个属性。`display:inline-flex`用得较少。 + +### flex-direction 属性 + +`flex-direction`:用于设置盒子中**子元素**的排列方向。属性值可以是: + +| 属性值 | 描述 | +|:-------------|:-------------| +| row | 从左到右水平排列子元素(默认值) | +|column|从上到下垂直排列子元素| +| row-reverse |从右向左排列子元素 | +|column-reverse|从下到上垂直排列子元素| + +备注:如果我们不给父容器写`flex-direction`这个属性,那么,子元素默认就是从左到右排列的。 + +### flex-wrap 属性 + +`flex-wrap`:控制子元素溢出时的换行处理。 + +### justify-content 属性 + +`justify-content`:控制子元素在主轴上的排列方式。 + +## 弹性元素 + +### justify-content 属性 + +- `justify-content: flex-start;` 设置子元素在**主轴上的对齐方式**。属性值可以是: + - `flex-start` 从主轴的起点对齐(默认值) + - `flex-end` 从主轴的终点对齐 + - `center` 居中对齐 + - `space-around` 在父盒子里平分 + - `space-between` 两端对齐 平分 + +### align-items 属性 + +`align-items`:设置子元素在**侧轴上的对齐方式**。属性值可以是: + - `flex-start` 从侧轴开始的方向对齐 + - `flex-end` 从侧轴结束的方向对齐 + - `baseline` 基线 默认同flex-start + - `center` 中间对齐 + - `stretch` 拉伸 + +### `flex`属性:设置子盒子的权重 + +### 练习 + +效果: + +![](./images/屏幕截图%202024-11-03%20132444.png) + +代码: +```html + + + + + + + Document + + + + + + +
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ + + +``` \ No newline at end of file diff --git "a/\350\251\271\345\256\207\350\210\252/images/\345\261\217\345\271\225\346\210\252\345\233\276 2024-11-03 132444.png" "b/\350\251\271\345\256\207\350\210\252/images/\345\261\217\345\271\225\346\210\252\345\233\276 2024-11-03 132444.png" new file mode 100644 index 0000000000000000000000000000000000000000..b47571633628b006111914d23a785307ce559cd0 Binary files /dev/null and "b/\350\251\271\345\256\207\350\210\252/images/\345\261\217\345\271\225\346\210\252\345\233\276 2024-11-03 132444.png" differ