移动端flex布局复习

这些天要写几个移动端的页面,想到了用flex布局,今天就稍微复习并总结一下知识点。
Flexbox得到了W3C的认可,可以在各个浏览器中广泛地运用。Flexbox是一维布局模型,要么设置水平方向要么设置垂直方向。
弹性盒子Flexbox的两根轴线:主轴和交叉轴,flex的空间分布和对齐能力依赖于这两根轴。
如果flex元素不设置高度的话,flex元素的高度会等于flex父级容器的高度。
注意:设置成弹性盒子,flex不在乎后面有没有换行,弹性盒子会等比列压缩超出盒子的部分,默认情况下是不会换行和超出的。
交叉轴中充满父级的属性align-items:stretch。
flex-direction设置flex容器主轴的方向

            /*默认情况下*/
            flex-direction: row;
            /*方向相反*/
            flex-direction: row-reverse;
            /*垂直方向:从上往下*/
            flex-direction: column;
            /*垂直方向:从下往上*/
            flex-direction: column-reverse;

flex-wrap控制flex容器换行

            /*允许换行,一般情况下按顺序是正方向*/
            flex-wrap:wrap;
            /*反方向*/
            flex-wrap: wrap-reverse;

justify-content主轴上的对齐方式

            /*默认情况下,在主轴上的对齐方式是从main start*/
            justify-content: flex-start;
            /*主轴上的对齐方式是从main end*/
            justify-content: flex-end;
            /*主轴上的对齐方式是从居中对齐*/
            justify-content: center;
            /*主轴上的对齐方式是两端对齐*/
            justify-content: space-between;
            /*主轴上的对齐方式是每一个项目左右两边的空隙相等*/
            justify-content: space-around;

align-items交叉轴单行对齐

            /*交叉轴默认对齐*/
            align-items:flex-start;
            /*交叉轴向下对齐*/
            align-items:flex-end;
            /*交叉轴中间对齐*/
            align-items: center;
            /*不设置高度时flex元素充满flex容器*/
            align-items: stretch;
            /*与第一行文本对齐,给第二个文本设置margin-top的时候,第一个和第三个会跟着往下窜*/
            align-items: baseline;

align-content交叉轴多行对齐

            多线的对齐方式,单线不起作用
            /*起点对齐*/
            align-content:flex-start;
            /*终点对齐*/
            align-content: flex-end;
            /*居中对齐*/
            align-content: center;
            /*两端对齐,第一行在cross-start位置,最后一行在cross-end位置*/
            align-content: space-between;
            /*分开对齐*/
            align-content:space-around;
            /*在flex元素也就是这边的item没有设置高度,可以设置stretch,会把自己撑开*/
            align-content: stretch;
            /*在什么都不设置的情况下,只设置高度,有个默认属性值是auto*/

align-itemsalign-content的区别
align-content属性只适用于多行的flex容器,并且当交叉轴上有多余空间使flex容器内的flex线对齐。
注意:所以对于只有一行的flex元素,align-content是没有效果的。
如果主轴是水平的,flex-basis由宽度决定,如果主轴是垂直的,那么flex-basis,主轴方向的尺寸由高度决定。
align-self可以设置单个项目交叉轴上的对齐方式

   align-self: center;

flex-grow按比例拉伸
flex-shrink按比例压缩
order:number;该项目排列的位置,最小的那个排前面,从小到大排列

.item:last-child{
            background: rgb(88,8,88);
            flex-shrink:2;
            order: -5;
        }

flex-basis是定义元素在主轴方向上的尺寸,flex-basis默认会继承宽度,如果自己有设置的话就会用自己的。

发布了143 篇原创文章 · 获赞 92 · 访问量 8877

猜你喜欢

转载自blog.csdn.net/weixin_42995083/article/details/102810323