如何使用 Vuetify 网格系统循环显示卡片组件?

How to display card components in loop with Vuetify grid system?

注意: 使用 Vue.js 和 Vuetify.js 实现功能和样式

我有使用 v-for 动态生成的卡片组件,我想根据屏幕尺寸 (sm/md/lg) 在 1/3/4 卡片中连续显示它们。当我将它们放在 Vuetify 的网格系统中时,带有 v-flexv-layout 元素,卡片被最小化,而不是移动到第二行。

还有其他方法吗?

<v-content>
  <v-card class="d-inline-flex" v-for="company of companies" :key="company.name">
    <v-layout >
      <v-flex md6 lg6>
        <img class="company-logo" src="../assets/img/example-logo.png" alt="company logo">
      </v-flex>
      <v-flex md6 lg6>
        <v-card-title class="headline pl-0">{{company.name}}</v-card-title>
        <article class="text-md-left text-lg-left">
          <v-btn @click="selectDashboard(href('stats', company.name))" :value="company.name"><v-icon>local_offer</v-icon></v-btn>
          <v-btn @click="selectDashboard(href('process', company.name))" :value="company.name"><v-icon>notifications</v-icon></v-btn>
          <v-btn @click="selectDashboard(href('example', company.name))" :value="company.name"><v-icon>rate_review</v-icon></v-btn>
          <v-btn @click="selectDashboard(href('alerts', company.name))" :value="company.name"><v-icon>explore</v-icon></v-btn>
          <v-btn @click="selectDashboard(href('profile', company.name))" :value="company.name"><v-icon>room</v-icon></v-btn>
        </article>
      </v-flex>
    </v-layout>
  </v-card>
</v-content>

对于视觉效果,此代码笔显示图像宽度尺寸减小(但高度尺寸保持不变)- https://codepen.io/johnjleider/pen/aLXBez?editors=1111

<v-flex> 网格最大为 12。因此,如果您在 <v-flex xs12> 上设置 xs12(超小断点),它将占用所有网格宽度,直到它命中下一个断点(如果您不设置另一个断点,则最低的断点将应用于所有屏幕宽度)。所以然后设置<v-flex xs12 md6>,现在当你打到中断点时,每张卡将占用6格spaces,这将允许你并排放置2张卡。设置 lg3,将允许您在同一个 space 中放置 4 张卡片。

你可以看到它在你的例子的这个修改中工作 https://codepen.io/twandy/pen/JrxamB?editors=1001

已接受的答案对 Vuetify v2 无效。

现在我们可以使用 <v-col>,您可以执行如下操作。

<v-row>
    <v-col cols="12" sm="3" md="4" v-for="(something, index) in somethingsArray" :key="index" >
        <my-component :my-data="something" />
    </v-col>
</v-row>

其中 cols="12"xs="12" 相同,该列将占用完整的 12 个空格。

尺寸从最小的屏幕开始放大。然后在小屏幕上,每列将占用 4 个空间,从而产生 3 列,然后对于中等和更大的屏幕,使用 3 个空间,从而产生 4 列。

|__|__|__|__|__|__|__|__|__|__|__|__|  12 spaces in the grid
|-----------------------------------|  <-cols=12 (1 column)
|--------|--------|--------|--------|  <-sm=3 (4 columns)
|-----------|-----------|-----------|  <-md=4 and larger (3 columns)