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

时间:2017-10-19 13:44:08

标签: vue.js grid-system vuetify.js

注意:使用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

2 个答案:

答案 0 :(得分:5)

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

您可以看到它对您的示例进行此修改 https://codepen.io/twandy/pen/JrxamB?editors=1001

答案 1 :(得分:1)

对于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)