# 03.flex弹性布局
[toc]{type: "ol", level: [3,4]}
### 概念
> 用于模块内布局
### 行内布局
#### 基础布局
- justify-content
> 行内的内容,设置对齐方式
- **start**{style="color:brown"} 左对齐
- **center**{style="color:goldenrod"} 居中对齐
- **end**{style="color:green"} 右对齐
- **around**{style="color:red"} 间隔相等
- **between**{style="color:gold"} 两端对齐
> padding宽度:边框与内部文字的距离
```html
<div class="d-flex flex-row border border-dark justify-content-start">
<div class="p-2 border border-success">one</div>
<div class="p-2 border border-success w-25">two</div>
<div class="p-2 border border-success w-50">three</div>
</div>
```

#### 行内移动
- offset-n **(1~11)**{style="color:grey"}
- 移动一定的距离
```html
<div class="d-flex flex-row border border-dark " >
<div class="p-2 border border-success offset-1">one</div>
<div class="p-2 border border-success offset-2">two</div>
<div class="p-2 border border-success offset-3">three</div>
</div>
```

#### 行内外边距
- m-auto
> 自动处理外边距
> 默认无外边距
> **ml-auto**{style="color:goldenrod"} **mr-auto**{style="color:goldenrod"} **mt-auto**{style="color:green"} **mb-auto**{style="color:green"}
- m-n **(1~5)**{style="color:grey"}
> 手动微调外边距
```html
<div class="d-flex flex-row border border-dark " >
<div class="p-2 border border-success m-auto">one</div>
<div class="p-2 border border-success">two</div>
<div class="p-2 border border-success">three</div>
</div>
```

#### 行内填充
- flex-fill
> 填满父标签
```html
<div class="d-flex flex-row border border-dark">
<div class="p-2 border border-success">one</div>
<div class="p-2 border border-success flex-fill">two</div>
<div class="p-2 border border-success flex-fill">three</div>
</div>
```

#### 行内竖直对齐
> 行内的内容,默认与父标签高度相同
> align-标签会使其恢复自身的高度
> **start**{style="color:brown"} **center**{style="color:goldenrod"} **end**{style="color:green"}
- align-items系列
> 针对全部行内的内容
- align-self系列
> 针对单个行内的内容
```html
<div class="d-flex flex-row border border-dark align-items-center" style="height: 200px">
<div class="p-2 border border-info align-self-start">one</div>
<div class="p-2 border border-info w-25">two</div>
<div class="p-2 border border-info w-50 align-self-end">three</div>
</div>
```


### 列内布局
#### 基础布局
- justify-content-start
> 列内的内容,顶部对齐
- justify-content-end
> 列内的内容,底部对齐
- reverse
> 将内部的内容反转排序
```html
<div class="d-flex flex-column-reverse border border-dark justify-content-end" style="height: 300px">
<div class="p-2 border border-success">one</div>
<div class="p-2 border border-success h-25">two</div>
<div class="p-2 border border-success h-50">three</div>
</div>
```

#### 其他布局
> 与行内布局原理相同