div瀑布流解决方案

2023-02-06  本文已影响0人  LemonTree7

1、column方式

<div class="flow">
    <div class="item" :key="1000+i.id" v-for="i in data">
       {{ i.value }}
    </div>
</div>

.flow{
    column-count: 3;
    column-gap: 10px;

    .item{
        break-inside: avoid;
        border: 1px solid red;
    }
}
image.png

2、grid 网格方式

<div class="grid">
    <div class="item" :key="1000+i.id" v-for="i in data">
         {{ i.value }}
    </div>
</div>

.grid{
    display: grid;
    grid-template-rows: 1fr 2fr 1fr; //3行
    grid-template-columns: 1fr 2fr 1fr ; //3列
    column-gap: 5px; //列间距
    grid-auto-rows: 200px;

    .item{
        border: 1px solid green;

        display: flex;
        align-items: center; //上下居中
        justify-content: center; //左右居中

        &:first-child{  //使用伪类选择器进行查看
            grid-row-start:1;
            grid-row-end:3;
        }
    }
}

image.png

3、flex-box方式瀑布流

<div class="flex-box">
      <div class="column">
            <div class="item" :key="1000+i.id" v-for="i in data">
                    {{ i.value }}
           </div>
    </div>
    <div class="column">
           <div class="item" :key="1000+i.id" v-for="i in data1">
                {{ i.value }}
           </div>
    </div>
   <div class="column">
          <div class="item" :key="1000+i.id" v-for="i in data">
                {{ i.value }}
          </div>
    </div>
</div>

.flex-box{
    display: flex;
    flex-direction: row;

    .column{
        display: flex;
        flex-direction: column;
        flex: 1;
        padding: 0 6px;

        .item{
            border: 1px solid blue;
            margin-bottom: 10px;
        }
    }
}
image.png

4、flex-wrap横向瀑布流

<div class="flex-wrap">
       <div class="item" :key="1000+i.id" v-for="i in data">
             <div class="value">
                  {{ i.value }}
              </div>
      </div>
</div>

.flex-wrap{
    display: flex;
    flex-wrap: wrap;

    .item{
        flex-grow: 1;
        min-height: 30px;
        border: 1px solid purple;
        margin: 2px;
        background: #FFEEF7;
    }
}
image.png
上一篇 下一篇

猜你喜欢

热点阅读