记录一下分栏布局的bug

27 阅读1分钟
   <el-row :gutter="10" class="main-img" v-for="(op,index) in booksList" :key="index">  
      <el-col :span="6" v-for="item in op" :key="item.SJID">
      这样写法导致第一个数组长度1的时候或是2的时候,后面留白,下面的数组数据重新一行展示,
      但是目前把el-row的循环数组换到下面重新写一个template标签循环数组,
      但是el-col还是循环下一次数组,页面就不留白了,接着展示数据了
      

         这是因为 `el-row` 组件默认是具有 `flex` 布局的,当 `el-row` 中的 `el-col`
         组件数量不足时,会自动在剩余空间中添加空白占位符,以保证每行的布局一致。
         因此,在您的代码中,当第一个数组长度为 12 时,后面会出现留白的情况。

        将 `el-row` 的循环数组换到下面重新写一个 `template` 标签循环数组,
         可以避免出现留白的情况,因为此时每个 `el-row` 都是独立的,
        不会受到前面 `el-row``el-col` 的影响。这种写法也更加灵活,
        可以根据实际需求来控制每个 `el-row` 中的 `el-col` 数量和布局。

          如果您希望保持 `el-row` 中的布局一致,可以考虑使用 CSS`grid`
          布局或者使用 `justify``align` 属性来控制子元素的对齐方式。
          例如,您可以在 `el-row` 上添加 `justify="space-between"` 属性,让 `el-col` 
          在每行中等间距分布。