布局小技巧集合之——动态列表固定列数固定间距自适应布局

应用场景

在我们开发业务的过程中,经常遇到列表显示,并且ui设计是每行固定几个元素跟固定间距,但是因为我们需要根据不同大小的屏幕进行自适应,在不用rem等单位进行自适应的时候,我们在pc端布局,可以使用以下2种方法进行,固定动态列表的固定列数固定间距

效果图下:数据个数不固定,每行固定4个,元素之间间距为24

 实现方法一

使用flex布局结合我们的calc动态计算每个元素宽度,以达不同屏幕自适应宽度!!!!

html

<div class="list">
   <div class="item" :key="index" v-for="(item, index) in list">
        列表元素
   </div>
</div>

css

.list {
   100%;
  display: flex;
  flex-wrap: wrap;
  .item {
     calc((100% - 24px * 3) / 4); // 一个间距24,总的4个
    height: 28px;
    line-height: 28px;
    margin: 0 24px 24px 0;
    border: 1px solid #ccc;
    text-align: center;
  }
  .item:nth-of-type(4n) {
    margin-right: 0;
  }
}

实现方法二

可以利用padding属性结合element-ui栅格栏布局进行

html

<div class="list">
   <div class="item" :key="index" v-for="(item, index) in list">
       <div>列表元素</div>
    </div>
 </div>

css

.list {
   100%;
  display: flex;
  flex-wrap: wrap;
  .item {
     25%;
    height: 28px;
    line-height: 28px;
    padding-right: 24px;
    margin-bottom: 24px;
    & > div {
      border: 1px solid #ccc;
      text-align: center;
    }
  }
  .item:nth-of-type(4n) {
    padding-right: 0;
  }
}
原文地址:https://www.cnblogs.com/qdlhj/p/14314274.html