如何在 bootstrap vue 中创建五个相等的列?

Posted

技术标签:

【中文标题】如何在 bootstrap vue 中创建五个相等的列?【英文标题】:How can I make five equal columns in the bootstrap vue? 【发布时间】:2019-03-01 22:14:39 【问题描述】:

我从这里得到参考:https://bootstrap-vue.js.org/docs/components/layout#columns-b-col

所以我想在 1 行中制作 5 列

我的脚本是这样的:

<template>
    ...
        <b-row>
            <b-col cols v-for="club in clubs">
                club.name
            </b-col>
        </b-row>
    ...
</template>
<script>
    export default 
        data () 
            return
                clubs: [
                    id:1, name:'chelsea',
                    id:2, name:'liverpool',
                    id:3, name:'mu',
                    id:4, name:'city',
                    id:5, name:'arsenal',
                    id:6, name:'tottenham',
                    id:7, name:'juventus',
                    id:8, name:'madrid',
                    id:9, name:'barcelona',
                    id:10, name:'psg'
                ]
            
        ,
        ...
    
</script>

结果是1行有10列

我想制作这样的标签:

<b-row>
    <b-col cols>
        chelsea
    </b-col>
    <b-col cols>
        liverpool
    </b-col>
    <b-col cols>
        mu
    </b-col>
    <b-col cols>
        city
    </b-col>
    <b-col cols>
        arsenal
    </b-col>
</b-row>
<b-row>
    <b-col cols>
        tottenham
    </b-col>
    <b-col cols>
        juventus
    </b-col>
    <b-col cols>
        madrid
    </b-col>
    <b-col cols>
        barcelona
    </b-col>
    <b-col cols>
        psg
    </b-col>
</b-row>

如果是这样的标签,它将在 1 行中显示 5 列

我的问题是如何在循环中实现它?

【问题讨论】:

【参考方案1】:

创建一个计算属性:


   ...
   computed: 
      formattedClubs() 
          return this.clubs.reduce((c, n, i) => 
            if (i % 5 === 0) c.push([]);
            c[c.length - 1].push(n);
            return c;
          , []);
      
   

然后

<b-row v-for="row in formattedClubs">
  <b-col cols v-for="club in row">
    club.name
  </b-col>
</b-row>

【讨论】:

您的代码似乎并不完美。例如,我有 2 个项目。如果我使用您的代码,在 1 行中只有 2 列。它应该保持 5 列。 2 列有项目,其他 3 列是空的 我提出一个新问题。看看这个:***.com/questions/52584241/…。也许你可以再帮我一次

以上是关于如何在 bootstrap vue 中创建五个相等的列?的主要内容,如果未能解决你的问题,请参考以下文章

Bootstrap 网格系统 - 如何使两列高度相等? [复制]

如何在我的 Bootstrap flex 子元素中具有相等的高度?

Bootstrap-vue 文件形式看起来像纯文本

如何使用 NavWalker 和 bootstrap.min.css 在 WordPress 中创建 Bootstrap 导航栏

在 Vue 中创建带有条件问题的动态表单

如何在 Bootstrap 5 中创建 jumbotron?