webveuje/css/弹性盒子.md
2021-01-05 09:18:22 +08:00

147 lines
2.8 KiB
Markdown
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 弹性盒子flex
### flex 简介
Flex 是 Flexible Box 的缩写,意为"弹性布局",用来为盒状模型提供最大的灵活性。
任一个容器都可以指定为 Flex 布局。
#### 将一个html元素定义为flex 元素
> 使用 display: flex;
>
> 内联元素使用 display: inline-flex;
示例:
```
.box{
display: flex;
}
```
内联元素:
```
.box{
display: inline-flex;
}
```
### 基本概念
> 采用 Flex 布局的元素,称为 Flex 容器flex container简称"容器"。它的所有子元素自动成为容器成员,称为 Flex 项目flex item简称"项目"。
容器内默认存在两根轴 分别是水平的主轴main axis和垂直的交叉轴(cross axis)
主轴的开始位置与容器边框的交叉点叫做main start 结束点叫做 main end
交叉轴的开始位置与容器边框的交叉点叫做 cross start 结束位置叫做 cross end
默认容器成员沿主轴排列单个容器成员占据的空间叫做main-size
单个容器成员占据垂直交叉轴的控件叫做cross-size
![image-20201218164425451](弹性盒子.assets/image-20201218164425451.png)
### 常用属性
- flex-direction:row;/column
- flex-wrap
- flex-flow
- justify-content
- align-items
- align-content
### 常用属性详解
#### flex-direction
作用: 决定主轴方向
属性值:
- `row`(默认值):主轴为水平方向,起点在左端。
- `row-reverse`:主轴为水平方向,起点在右端。
- `column`:主轴为垂直方向,起点在上沿。
- `column-reverse`:主轴为垂直方向,起点在下沿。
```
.box {
flex-direction: row | row-reverse | column | column-reverse;
}
```
![image-20201218165134275](弹性盒子.assets/image-20201218165134275.png)
#### justify-content
作用: 定义了容器成员在主轴方向上的对齐方式
```
.box {
justify-content: flex-start | flex-end | center | space-between | space-around;
}
```
![image-20201218165414077](弹性盒子.assets/image-20201218165414077.png)
#### flex-wrap
```css
.box{
flex-wrap: nowrap | wrap | wrap-reverse;
}
```
属性值:
- nowrap 不换行
![image-20201218165546847](弹性盒子.assets/image-20201218165546847.png)
- wrap 换行 第一行在上方
![image-20201218165635626](弹性盒子.assets/image-20201218165635626.png)
- wrap-reverse :换行,第一行在下方。
![image-20201218165726666](弹性盒子.assets/image-20201218165726666.png)
#### align-item
作用:定义容器成员在交叉轴上的对齐方式
```css
.box {
align-items: flex-start | flex-end | center | baseline | stretch;
}
```
![image-20201218170008166](弹性盒子.assets/image-20201218170008166.png)
#### align-self
允许单个容器成员拥有与其他成员不一样的对齐方式可以覆盖align-items属性默认值为auto