CSS flex布局

flex布局基础

任何一个容器都可以指定为flex布局

1
2
3
4
5
6
7
8
9
//	盒状模型
.box{
display: flex
}

// 行内元素
.box{
display: inline-flex
}

注意,设为Flex布局以后,子元素的float、clear和vertical-align属性将失效。

3791e575c48b3698be6a94ae1dbff79d.png

容器属性

flex-direction

1
2
3
4
//	主轴方向
.box {
flex-direction: row | row-reverse | column | column-reverse;
}

fc26544c3657f7ebdacfbfc57662171.jpg

flex-wrap

当主轴排列不下所有子内容时,flex-wrap决定如何换行

1
2
3
4
.box{
flex-wrap: nowrap | wrap | wrap-reverse;
}
// nowrap为默认

三种分别对应:

9da1f23965756568b4c6ea7124db7b9a.png

3c6b3c8b8fe5e26bca6fb57538cf72d9.jpg

fb4cf2bab8b6b744b64f6d7a99cd577c.jpg

flex-flow

1
2
3
4
5
//	flex-direction与flex-wrap的合并写法
// 默认为row nowrap
.box {
flex-flow: <flex-direction> <flex-wrap>;
}

justify-content

1
2
3
4
//	定义主轴上的对齐方式,默认为flex-start
.box {
justify-content: flex-start | flex-end | center | space-between | space-around;
}

c55dfe8e3422458b50e985552ef13ba5.png

align-items

1
2
3
4
//	定义主轴在cross轴上的对齐方式,默认为stretch
.box {
align-items: flex-start | flex-end | center | baseline | stretch;
}

2b0c39c7e7a80d5a784c8c2ca63cde17.png

  • flex-start:交叉轴的起点对齐。
  • flex-end:交叉轴的终点对齐。
  • center:交叉轴的中点对齐。
  • baseline: 项目的第一行文字的基线对齐。
  • stretch(默认值):如果项目未设置高度或设为auto,将占满整个容器的高度。