1.弹性盒子
概念:是一种新的布局模式,它让元素有能力控制子元素的排列。
语法: display:flex | inline-flex; 设置为弹性盒子
inline-flex是行内的弹性盒子,容器的宽度由内容决定。
专业术语:
容器:被设置成弹性盒子的元素
项目:容器的子元素
主轴:子元素的排列方向
侧轴:与主轴垂直的轴,又叫交叉轴
1.容器身上的属性
1.设置主轴的方向
flex-direction:row | column | row-reverse | column-reverse;
2.设置项目在主轴上的排列方式
justify-content:flex-start | flex-end | center | space-around | space-between | space-evenly;
space-around间隔在周围
space-between间隔在之间
space-evenly均分间隔
3.设置项目是否换行
flex-wrap:nowrap | wrap | wrap-reverse;
4.项目在侧轴上的对齐方式
align-items:stretch 拉伸| flex-start | flex-end | center | baseline基线;
stretch在项目有高度的时候,项目不会有拉伸的效果。
5.设置多根轴线的排列方式
align-content:stretch | flex-start | flex-end | center | space-around | space-between | space-evenly;
注意:单根轴无效
6.设置主轴方向和是否换行的复合属性(了解)
flex-flow:flex-direction flex-wrap;
面试题:弹性盒子实现未知大小的盒子中居中
2.项目身上的属性
1.项目是否缩小
flex-shrink: * ;
1 会缩小 , 0 不缩小;
如果值为其他数,就会将需要缩小的值,除以所有项目的flex-shrink值的和,得到每一份的值,然后让该项目缩小指定的份数的大小
2.项目是否放大
flex-grow: *;
0不放大,1会放大。
案例:移动端手机中间的搜索框放大
3.设置项目基准尺寸(了解) = width属性
flex-basis:auto | *px;
4.放缩的复合属性
flex:flex-grow flex-shrink flex-basis;
面试题:flex:1;代表的意思是1 1 auto;
5.项目的排序
order:数字;
元素默认的值是0
排序是从小到大排列。
6.设置项目单独的对齐方式
align-self:stretch 拉伸| flex-start | flex-end | center | baseline;
案例:骰子六点