我怎样才能在卡组引导VUE设置行列?(How can I set column in row on

2019-09-29 00:30发布

我的VUE组件是这样的:

<template>
  ...
    <b-card-group deck deck v-for="row in formattedClubs">
        <b-card  v-for="club in row"
                :title="club.description"
                img-src="http://placehold.it/130?text=No-image"
                img-alt="Img"
                img-top>
            <p class="card-text">
                {{club.price}}
            </p>
            <p class="card-text">
                {{club.country}}
            </p>
            <div slot="footer">
                <b-btn variant="primary" block>Add</b-btn>
            </div>
        </b-card>
    </b-card-group>
  ...
</template>

<script>
export default {
  data: function () {
    return {
      clubs: [
          {id:1, description:'chelsea', price:1000, country:'england'},
          {id:2, description:'liverpool', price:900, country:'england'},
          {id:3, description:'mu', price:800, country:'england'},
          {id:4, description:'cit', price:700, country:'england'},
          {id:5, description:'arsenal', price:600, country:'england'},
          {id:6, description:'tottenham', price:500, country:'england'},
          {id:7, description:'juventus', price:400, country:'italy'},
          {id:8, description:'madrid', price:300, country:'spain'},
          {id:9, description:'barcelona', price:200, country:'spain'},
          {id:10, description:'psg', price:100, country:'france'}
      ]
    }
  },
  computed: {
      formattedClubs() {
          return this.clubs.reduce((c, n, i) => {
              if (i % 4 === 0) c.push([]);
              c[c.length - 1].push(n);
              return c;
          }, []);
      }
  }
}
</script>

如果脚本执行,结果是这样

第1行:

第2行:

第3行:

在第1行和第2行,结果如我所料。 在1行存在4列

但第3排不符合我的期望。 在1行只2柱上。 应该有4列,2列装满,2列是空的

我怎么解决这个问题?

Answer 1:

使用CSS来设置一个最大宽度为卡...

.card-group .card {
    max-width: 25%;
}

演示: https://www.codeply.com/go/DugupIrFxm

如果您使用卡甲板,你需要计算的排水沟...

.card-deck .card {
    max-width: calc(25% - 30px);
}


文章来源: How can I set column in row on the card group bootstrap vue?