本文思维导图:
image.png
给div这类块状元素元素设置display:flex或者给span这类内联元素设置display:inline-flex,flex布局即创建!其中,直接设置display:flex或者display:inline-flex的元素称为flex容器,里面的子元素称为flex子项。
一、作用在flex容器上的CSS属性
1. flex-direction
flex-direction
用来控制子项整体布局方向,是从左往右还是从右往左,是从上往下还是从下往上。和CSS的direction属性相比就是多了个flex
。
例子:
- flex-direction:row;
- flex-direction:row-reverse;
- flex-direction:column;
- flex-direction:column-reverse;
2. flex-wrap
flex-wrap
用来控制子项整体单行显示还是换行显示,如果换行,则下面一行是否反方向显示。这个属性比较好记忆,在CSS世界中,只要看到单词wrap一定是与换行显示相关的,word-wrap
属性或者white-space:nowrap
或者pre-wrap
之类。
- flex子项最小内容宽度
min-content
之和大于flex容器宽度,则内容溢出,表现和white-space:nowrap
类似。 - 如果flex子项最小内容宽度
min-content
之和小于flex容器宽度,则:- flex子项默认的
fit-content
宽度之和大于flex容器宽度,则flex子项宽度收缩,正好填满flex容器,内容不溢出。 - flex子项默认的
fit-content
宽度之和小于flex容器宽度,则flex子项以fit-content
宽度正常显示,内容不溢出。
- flex子项默认的
在下面案例中,示意的图片默认有设置max-width:100%
,flex子项div没有设置宽度,因此,flex子项最小宽度是无限小,表现为图片宽度收缩显示。如果我们取消max-width:100%
样式,则此时flex子项最小宽度就是图片宽度,就可以看到图片溢出到了flex容器之外。
- flex-wrap:wrap;
- flex-wrap:wrap-reverse;
3. flex-flow
flex-flow
属性是flex-direction
和flex-wrap
的缩写,表示flex布局的flow流动特性,语法如下:
当多属性同时使用的时候,使用空格分隔。
可以看到水平排序从右往左(row-reverse
属性值的作用),以及换行的那一行在上面(wrap-reverse
属性值的作用)。
例子:
- flex-flow:row wrap;
- flex-flow:row-reverse wrap-reverse;
4. justify-content
justify-content
属性决定了水平方向子项的对齐和分布方式。CSS text-align
有个属性值为justify
,可实现两端对齐,所以,当我们想要控制flex元素的水平对齐方式的时候,记住justify
这个单词,justify-content
属性也就记住了。
justify-content
可以看成是text-align
的远房亲戚,不过前者控制flex元素的水平对齐外加分布,后者控制内联元素的水平对齐。
- justify-content:flex-start;
- justify-content:flex-end;
- justify-content:center;
- justify-content:space-between;
- justify-content:space-around;
- justify-content:space-evenly;
5. align-items
align-items
中的items
指的就是flex子项们,因此align-items
指的就是flex子项们相对于flex容器在垂直方向上的对齐方式,大家是一起顶部对齐呢,底部对齐呢,还是拉伸对齐呢。
- align-items:flex-start;
- align-items:flex-end;
- align-items:baseline;
- align-items:center;
三、作用在flex子项上的CSS属性
1. order
我们可以通过设置order
改变某一个flex子项的排序位置。
语法:
所有flex子项的默认order
属性值是0,因此,如果我们想要某一个flex子项在最前面显示,可以设置比0小的整数,如-1
就可以了。
参考:https://www.zhangxinxu.com/wordpress/2018/10/display-flex-css3-css/
网友评论