美文网首页
Flex Layout

Flex Layout

作者: Water水先生 | 来源:发表于2019-03-18 17:35 被阅读0次

    弹性盒子布局,配合网格布局应该会成为未来的基础布局方式,当然原始的DIV+CSS还是一样OK
    现在还是定义一个flex容器和它的子集item

      <div class="flex">
        <div class="item"></div>
      </div>
    

    父元素的属性

    display: flex块状 | inline-flex 容器为行内。为所有子元素提供flex上下文。
    flex-direction: 确立主轴,定义item在flex的排布方向
    flex-wrap: 是否允许换行,一般flex在单行
    flex-flow: 是flex-direction和flex-wrap的缩写
    justify-content: item的间距选项
    align-items: 交叉轴上的排布对齐
    align-content: 交叉轴有剩余空间时可以设置分配剩余空间,类似justify-content对齐单个item

      .flex {
        display: flex;
    
        //上到下,下到上,右到左,左到右
        flex-directlion: row | row-reverse | column | column-reverse;
    
        //不换行,换行,上到下多行,下到上多行
        flex-wrap: nowrap | wrap | wrap-reverse;
    
        //缩写
        flex-flow: flex-direction || flex-wrap
        
        //主轴开始,主轴结束开始,居中,两端对齐,左右端各1中间各2,全部1
        justify-content: flex-start | flex-end | center | space-between | space-around | space-evenly;
        
        // 交叉轴开始,结束,居中,文字基线对齐,拉伸(如果flex有width...首先用这些)
        align-items: flex-start | flex-end | center | baseline | stretch;
    
        // 多行在flex开始排布,结束,中间,均匀左右,全部均匀,拉伸。
        align-content: flex-start | flex-end | center | space-between | space-around | stretch;
      }
    

    item的属性

    order: 控制顺序
    flex-grow: 如果所有都是1,平均分配,有一个是2,大小是其他的2倍。 P.s.比如两个1一个2,那么2的那个就占了1/2,其他每个1/4
    flex-shrink: 和grow相反,可以收缩多少。
    flex-basis: 分配剩余空间前flex默认大小,可以设置%,rem,auto,未来还可以设置content。
    flex: 这个是flex-grow, flex-shrink, flex-basis三个的缩写,2、3是可选的,默认0 1 auto;

      .item {
          order: number;
          flex-grow: number;
          flex-shrink: number;
          
          flex: 0 1 auto;
      }
    

    一些栗子

        //一个完全居中的例子
        .flex {
          display: flex;
          height: 300px;
        }  
        .item {
          width: 100px; height:100px;
          //自动分配~
          margin: auto;
        }
    

    摘自HTML中文网

    相关文章

      网友评论

          本文标题:Flex Layout

          本文链接:https://www.haomeiwen.com/subject/kmdbmqtx.html