Flex布局
本帖最后由 小陈 于 2021-3-1 18:56 编辑## Flex 布局是什么
Flex 是 Flexible Box 的缩写,意为"弹性布局",用来为盒状模型提供最大的灵活性。
任何一个容器都可以指定为 Flex 布局。
!(data/attachment/forum/202103/01/183553ga87asazlaj37pfa.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/300 "image.png")
行内元素也可以使用 Flex 布局。
!(data/attachment/forum/202103/01/183604xcwwmk871w9wm7k9.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/300 "image.png")
注意,设为 Flex 布局以后,子元素的`float`、`clear`和`vertical-align`属性将失效。
## 基本概念
采用 Flex 布局的元素,称为 Flex 容器(flex container),简称"容器"。它的所有子元素自动成为容器成员,称为 Flex 项目(flex item),简称"项目"。
![](http://www.ruanyifeng.com/blogimg/asset/2015/bg2015071004.png)
容器默认存在两根轴:水平的主轴(main axis)和垂直的交叉轴(cross axis)。主轴的开始位置(与边框的交叉点)叫做`main start`,结束位置叫做`main end`;交叉轴的开始位置叫做`cross start`,结束位置叫做`cross end`。
项目默认沿主轴排列。单个项目占据的主轴空间叫做`main size`,占据的交叉轴空间叫做`cross size`。
## 容器的属性
!(data/attachment/forum/202103/01/183724r6685zgxi45gq82z.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/300 "image.png")
首先我们说一下flex-direction,这一属性决定的主轴的方向
!(data/attachment/forum/202103/01/183851oxoby6x6uxvxqvdu.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/300 "image.png")
!(data/attachment/forum/202103/01/183901hcs99ffffsvf7a8c.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/300 "image.png")
flex-wrap
默认情况下,项目都排在一条线(又称"轴线")上。
那么如果一条轴线排不下,如何换行。
!(data/attachment/forum/202103/01/184016dhd4fhgp8zp07t38.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/300 "image.png")
`nowrap`(默认):不换行。
`wrap`:换行,第一行在上方。
`wrap-reverse`:换行,第一行在下方。
flex-flow
`flex-flow`属性是`flex-direction`属性和`flex-wrap`属性的简写形式,默认值为`row nowrap`。
!(data/attachment/forum/202103/01/184058nppmlqlfjm7ac467.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/300 "image.png")
`justify-content`
`justify-content`属性定义了项目在主轴上的对齐方式。
!(data/attachment/forum/202103/01/184353dggaua5wu45av494.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/300 "image.png")
!(data/attachment/forum/202103/01/184715bdgp6axuyfysyfjf.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/300 "image.png")
`align-items`
`align-items`属性定义项目在交叉轴上如何对齐。
!(data/attachment/forum/202103/01/184819jarszcaht0atplf4.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/300 "image.png")
!(data/attachment/forum/202103/01/184827kieib99zoexxrobj.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/300 "image.png")
`align-content`
`align-content`属性定义了多根轴线的对齐方式。如果项目只有一根轴线,该属性不起作用。
!(data/attachment/forum/202103/01/184858p6282x38t8p8ppvi.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/300 "image.png")
!(data/attachment/forum/202103/01/184904y740lay5f0zuf51f.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/300 "image.png")
## 常见布局的Flex写法
http://www.ruanyifeng.com/blog/2015/07/flex-examples.html
https://blog.csdn.net/lc941015/article/details/79098933?utm_medium=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-3.control&dist_request_id=b77e0d2a-2d6e-48ca-be11-e3dc4fd6071d&depth_1-utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-3.control
页:
[1]