CSS3布局扩展 之 Flex

这里写图片描述

一、基本介绍

flex 是一个CSS的display 属性中新添加一个值。
使用 display: flex;

二、Flex 确定主轴及其方向

 老版本
          容器
                    容器的布局方向
                        -webkit-box-orient:horizontal/vertical
                        控制主轴是哪一根
                            horizontal:x轴
                            vertical  :y轴
                    容器的排列方向
                        -webkit-box-direction:normal/reverse
                        控制主轴的方向
                            normal:从左往右(正方向)
                            reverse:从右往左(反方向)
                    富裕空间的管理
                        只决定富裕空间的位置,不会给项目去分配空间
                        主轴
                            -webkit-box-pack
                                主轴是x轴
                                    start:在右边
                                    end:    在左边
                                    center:在两边
                                    justify:在项目之间
                                主轴是y轴
                                    start:在下边
                                    end:在上边
                                    center:在两边
                                    justify:在项目之间
                        侧轴
                            -webkit-box-algin
                                侧轴是x轴
                                    start:在右边
                                    end:  在左边
                                    center:在两边
                                侧轴是y轴
                                    start:在下边
                                    end:   在上边  
                                    center:在两边
            项目
                    弹性空间管理
                        -webkit-box-flex:弹性因子(默认值为0)
    新版本
            容器
                    容器的布局方向
                    容器的排列方向
                        flex-direction
                        控制主轴是哪一根,控制主轴的方向
                            row;        从左往右的x轴 
                            row-reverse;从右往左的x轴
                            column;     从上往下的y轴
                            column-reverse;从下往上的y轴
                    富裕空间的管理
                        只决定富裕空间的位置,不会给项目区分配空间
                        主轴
                            justify-content
                                    flex-start:     在主轴的正方向
                                    flex-end:       在主轴的反方向
                                    center:         在两边
                                    space-between:  在项目之间
                                     space-around:  在项目两边

                        侧轴
                            align-items
                                    flex-start:在侧轴的正方向
                                    flex-end:    在侧轴的反方向
                                    center:     在两边
                                    base#ne    基线对齐
                                    stretch     等高布局(项目没有高度)    
            项目
                    弹性空间管理
                        flex-grow:定义弹性盒子项(flex item)的拉伸因子。
                         默认值为0

三、Flex新增属性

容器
     flex-wrap:控制的是侧轴的方向
                nowrap 不换行
                wrap   侧轴方向由上而下             (flex-shrink失效)
                wrap-reverse 侧轴方向由下而上   (flex-shrink失效)
      align-content:多行/列时侧轴富裕空间的管理(把多行/列看成一个整体),对单行/列无效
                flex-start:所有行/列从侧轴起点开始填充。第一行/列的侧轴起点边和容器的侧轴起点边对齐。
                                                                                  接下来的每一行/列紧跟前一行/列。
                flex-end :所有弹性元素从侧轴末尾开始填充。最后一个弹性元素的侧轴终点和容器的侧轴终点对齐。
                                                                              同时所有后续元素与前一个对齐。
                center:所有行/列朝向容器的中心填充。每行/列互相紧挨,相对于容器居中对齐。
                                                                       容器的侧轴起点边和第一行/列的距离相等于容器的侧轴终点边和最后一行/列的距离。
                space-between:所有行/列在容器中平均分布。相邻两行/列间距相等。
                                                                                           容器的侧轴起点边和终点边分别与第一行/列和最后一行/列的边对齐。
                space-around:所有行/列在容器中平均分布,相邻两行/列间距相等。
                                                                                       容器的侧轴起点边和终点边分别与第一行/列和最后一行/列的距离是相邻两行/列间距的一半。
                                                        注意:space-between与space-around最大的区别是前者中元素与起点边终点边不存在间距,而后者存在间距
                stretch:拉伸所有行/列来填满剩余空间。剩余空间平均的分配给每一行/列       

      flex-flow :flex-flow 属性是 flex-direction 和 flex-wrap 的简写。
                默认值:row nowrap
                控制主轴和侧轴的位置以及方向  

 项目
      order :order 属性规定了弹性容器中的可伸缩项目在布局时的顺序。元素按照 order 属性的值的增序进行布局。拥有相同 order 属性值的元素按照它们在源代码中出现的顺序进行布局
                默认值:0   不可继承

      align-self:align-self 属性定义flex子项单独在侧轴方向上的对齐方式。
                  align-self 会对齐当前 flex 行中的 flex 元素,并覆盖 align-items 的值. 如果任何 flex 元素的侧轴方向 margin 值设置为 auto,则会忽略 align-self。
                      默认值:auto 不可继承
                      值:                                                                                                                                          
                             auto:设置为父元素的 align-items 值,如果该元素没有父元素的话,就设置为 stretch。
                             flex-start:flex 元素会对齐到 容器的首端。
                             flex-end:flex 元素会对齐到容器的尾端。
                             center:flex 元素会对齐到容器的中间,如果该元素的 容器 的尺寸大于 flex 容器,将在两个方向均等溢出。
                             stretch:flex 元素将会基于容器的宽和高,按照自身 margin box 的 容器拉伸

       flex-shrink: flex-shrink 属性指定了 flex 元素的收缩因子  默认值为1
                   只对单行单列有效,建议开发时弃用

      flex-basis:flex-basis 指定了 flex 元素在主轴方向上的初始大小

      flex: flex 是 flex-grow,flex-shrink,flex-basis 的简写属性
             默认值   flex-grow: 0               不可继承
                     flex-shrink: 1
                     flex-basis: auto 

               值
                  flex: none;/* 0 0 auto */
                  flex:1;/* 1 1 0% */  等分布局

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值