目录
- 一、Flex 基本概念
- 二、Flex 容器
- 三、Flex 容器属性
- 1. flex-direction
- 2. flex-wrap
- 3. flex-flow
- 4. justify-content
- 5. align-items
- 6. align-content
一、Flex 基本概念
(1)主轴【main axis】:默认为水平方向;
(2)交叉轴【cross axis】:垂直于主轴,默认为竖直方向;
(3)通过修改使垂直方向变为主轴,水平方向变为交叉轴
二、Flex 容器
任何一个容器都可以被指定为 flex 布局,简单说来,如果你使用块元素如 div,你就可以使用 flex,而如果你使用行内元素,你可以使用 inline-flex。设置 flex 布局之后,子元素的 float、clear、vertical-align 的属性将会失效。
.container {
display: flex | inline-flex;//可以有两种取值
}
flex
:块状 flex 容器inline-flex
:行内 flex 容器
三、Flex 容器属性
1. flex-direction
flex-direction :决定主轴的方向
.container{
flex-direction: row | row-reverse | column | column-reverse;
}
row
【默认值】:主轴为水平方向,起点在左端。【column类似】
row-reverse
:主轴为水平方向,起点在右端。【column-reverse类似】
2. flex-wrap
flex-wrap:决定容器内项目是否可换行
nowrap
【默认】:不换行wrap
:换行wrap-reverse
:换行倒序
.container {
flex-wrap: nowrap | wrap | wrap-reverse;
}
3. flex-flow
flex-flow:flex-direction 和 flex-wrap 的简写形式;一般不用这种写法,建议分开写;
.container {
flex-flow: <flex-direction> || <flex-wrap>;
}
4. justify-content
justify-content:定义了项目在主轴的对齐方式。
.container {
justify-content: flex-start | flex-end | center | space-between | space-around;
}
flex-start
【默认】:左对齐flex-end
:右对齐center
:居中space-between
:两端对齐,项目之间的间隔相等,即剩余空间等分成间隙。space-around
:每个项目两侧的间隔相等,所以项目之间的间隔比项目与边缘的间隔大一倍
5. align-items
align-items:定义了项目在交叉轴上的对齐方式
.container {
align-items: flex-start | flex-end | center | baseline | stretch;
}
flex-start
:左对齐flex-end
:右对齐center
:居中stretch
: 即如果项目未设置高度或者设为 auto,将占满整个容器的高度baseline
:项目的第一行文字的基线对齐
6. align-content
align-content:定义了多根轴线的对齐方式,如果项目只有一根轴线,那么该属性将不起作用;
.container {
align-content: flex-start | flex-end | center | space-between | space-around | stretch;
}
flex-start
【默认】:轴线全部在交叉轴上的起点对齐flex-end
:轴线全部在交叉轴上的终点对齐center
:轴线全部在交叉轴上的中间对齐space-between
:两端对齐,项目之间的间隔相等,即剩余空间等分成间隙。space-around
:每个项目两侧的间隔相等,所以项目之间的间隔比项目与边缘的间隔大一倍