【问题标题】:How to display card components in loop with Vuetify grid system?如何使用 Vuetify 网格系统循环显示卡片组件?
【发布时间】:2018-03-31 13:54:42
【问题描述】:

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

【问题讨论】:

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


    【解决方案1】:

    接受的答案对我来说不适用于 v2 的 Vuetify。

    现在我们可以使用&lt;v-col&gt;,您可以执行以下操作。

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

    【讨论】:

      【解决方案2】:

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

      您可以在对示例的此修改中看到它的工作原理 https://codepen.io/twandy/pen/JrxamB?editors=1001

      【讨论】:

        猜你喜欢
        • 2020-01-02
        • 1970-01-01
        • 2019-11-24
        • 2020-05-13
        • 1970-01-01
        • 1970-01-01
        • 2020-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多