2019-11-03有关flex(伸缩布局的使用)

  • 2019 年 11 月 5 日
  • 笔记
  • 伸缩布局主要是解决普通布局中的浮动问题。
  • 使得块级元素的排列更加便捷。
  • 以下案例为微信小程序案例,若是网页开发换成div和px 即可。
<text>  dispalay: flex; 默认水平排列</text>  <view class="father">    <view class="son"></view>    <view class="son"></view>    <view class="son"></view>  </view>
.father {    display: flex;  }  .son {    width: 200rpx;    height: 200rpx;    border: 1rpx solid #333;  }

结果如下:

默认.png

  • 那么怎么竖直排列呢 ? => flex-direction: column;
<text> 如何竖直排列 </text>  <view class="father1">    <view class="son"> </view>    <view class="son"> </view>    <view class="son"> </view>  </view>
.father1 {    display: flex;    flex-direction:  column;  }

竖直排列

  • 那幺元素怎么上下左右居中呢?
<text> 如何竖直居中排列 </text>  <view class="father2">    <view class="son"> </view>  </view>
.father2 {    width: 500rpx;    height: 500rpx;    display: flex;    /* 左右居中 */    justify-content: center;    /* 上下居中 */    align-items: center;  /* flex-end  是往下居中  */      border: 1rpx solid red;  }

结果如下:

居中.png

  • 那么怎么换行呢?
<text> 如何换行 </text>  <view class="father3">    <view class="son3"> 菜单 </view>    <view class="son3">菜单 </view>    <view class="son3">菜单 </view>    <view class="son3">菜单 </view>    <view class="son3">菜单 </view>    <view class="son3">菜单 </view>    <view class="son3">菜单 </view>    <view class="son3">菜单 </view>    <view class="son3">菜单 </view>    <view class="son3">菜单 </view>    </view>
.father3 {  width: 100%;  display: flex;  /* 换行 配合百分比的形式 */  flex-wrap: wrap;  }  .son3 {  width: 20%;  height: 200rpx;  border: 1px solid red;  line-height: 200rpx;  box-sizing: border-box;  text-align: center;  }

结果如下:

wrap.png

  • 那么flex: 1是什么意思?
<text>  flex: 1 具体意思</text>  <view class="father5">  <view class="son5"></view>  <view class="son5"></view>  <view class="son5"></view>    </view>
.father5 {    display: flex;    border: 1px solid red;  }    .son5 {    width: 200rpx;    height: 200rpx;    border: 1rpx solid #333;    flex: 1;    /* flex-grow : 1; // 这意味着div将以与窗口大小相同的比例增长 *//* flex-shrink : 1; // 这意味着div将以与窗口大小相同的比例缩小 *//* flex-basis : 0; // 这意味着div没有这样的起始值,并且将根据可用的屏幕大小占用屏幕。例如: - 如果包装器中有3个div,则每个div将占用33%。 */  }

结果如下:

flex:1.png