可以使用计算属性来根据头像数量动态计算每行显示的个数,然后根据计算属性的值来动态设置CSS样式。

HTML代码:

<div class="avatar-list" :class="{'four-per-row': perRow === 4, 'six-per-row': perRow === 6}">
  <div v-for="avatar in avatars" :key="avatar.id" class="avatar">
    <img :src="avatar.url" alt="avatar">
  </div>
</div>
<button @click="addAvatar">添加头像</button>

CSS代码:

.avatar-list {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
}

.four-per-row .avatar {
  width: 25%;
}

.six-per-row .avatar {
  width: 16.666%;
}

Vue代码:

data() {
  return {
    avatars: [], // 头像列表
  }
},
computed: {
  perRow() {
    if (this.avatars.length < 10) {
      return 4;
    } else {
      return 6;
    }
  }
},
methods: {
  addAvatar() {
    // 添加头像的逻辑
  }
}

这样就可以根据头像数量动态设置每行显示的个数了


原文地址: https://www.cveoy.top/t/topic/gg5i 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录