【问题标题】:How can I have a wrap horizontal alignment of cards in vuetify 2?如何在 vuetify 2 中对卡片进行环绕水平对齐?
【发布时间】:2020-09-14 23:41:35
【问题描述】:

我有一个使用 vuetify 2 构建的小项目,但我遇到的问题是宽度为 7 的 col,我的所有卡片都垂直显示,而不是水平溢出。

我希望实现的是卡片彼此垂直,计数为 5,溢出移动到第二行。

我的行排列是 row > col2 col7 col3 /row。我没有使用 v-container,因为它似乎在中间放了一个容器,而不是占据整个屏幕。

我已经尝试使用基于 vuetify 文档的 flex-wrapflex-columnflex-row 等类,但这似乎并没有改变任何东西。我发现的大多数关于此的示例都是针对 vuetify 1 的,并且组件结构不同。

Codesandbox

App.vue

<template>
  <v-app>
    <v-app-bar
      color="dark"
      dark dense
    >
    </v-app-bar>

    <v-row no-gutters>
      <v-col fluid cols="2"></v-col>

      <v-col fluid cols="7">
        <HelloWorld v-for="c in 10" :key="c" />
      </v-col>

      <v-col fluid cols="3"></v-col>
    </v-row>
  </v-app>
</template>

<script>
import HelloWorld from './components/HelloWorld';

export default {
  name: 'App',

  components: {
    HelloWorld,
  },

  data: () => ({
    //
  }),
};
</script>

HelloWorld.vue

<template>
  <v-card class="mx-auto" max-width="344" outlined>
    <v-list-item three-line>
      <v-list-item-content>
        <div class="overline mb-4">OVERLINE</div>
        <v-list-item-title class="headline mb-1">Headline 5</v-list-item-title>
        <v-list-item-subtitle>Greyhound divisely hello coldly fonwderfully</v-list-item-subtitle>
      </v-list-item-content>

      <v-list-item-avatar tile size="80" color="grey"></v-list-item-avatar>
    </v-list-item>

    <v-card-actions>
      <v-btn text>Button</v-btn>
      <v-btn text>Button</v-btn>
    </v-card-actions>
  </v-card>
</template>

<script>
export default {
  name: "HelloWorld"
};
</script>

我现在拥有的是这样的:箭头显示我希望后续卡片如何位于卡片旁边,依此类推。

【问题讨论】:

  • 主要问题是最大行大小为 12 列。
  • @Asimple 我不确定我是否遵循。 cols 是 2,7,3 所以 12,我不介意调整卡片的大小,只要它们水平而不是垂直。
  • 所以 12 列结束并开始新行。这就是为什么你的牌是一张一张的。
  • 仍然不确定你在暗示什么。卡片在 col 里面,有 7 cols...

标签: vue.js vuetify.js


【解决方案1】:

如果您想忽略换行,只需添加 .flex-nowrap 类:

<v-row class="flex-nowrap">

更新 我知道了。你把卡片贴在 col 里面。我的赌注。 你可以这样做:

<template>
  <v-app>
    <v-app-bar
      color="dark"
      dark dense
    >
    </v-app-bar>

    <v-row no-gutters>
      <v-col cols="2"></v-col>
      <v-col cols="7">
        <v-row no-gutters>
            <v-col v-for="c in 10" :key="c" cols="4">
                <HelloWorld/>
            </v-col>
        </v-row>
      </v-col>
      <v-col cols="3"></v-col>
    </v-row>
  </v-app>
</template>

【讨论】:

  • 我尝试了您对&lt;v-col fluid cols="7"&gt; &lt;v-row&gt; &lt;HelloWorld v-for="c in 10" :key="c" /&gt; &lt;/v-row&gt; &lt;/v-col&gt; 的解决方案,但这会使应用栏变得更大。
  • @securisec 你用过no-gutters吗?
  • 是的,正如您在代码中看到的那样,我使用了无排水沟。使用基于先前评论的代码,它使 appbar 变得很奇怪。 imgur.com/a/xwiy7Vx
  • @securisec Idk 它应该是什么样子)
  • 基于 cmets 的 imgur 链接,它很接近。但是在列内移动行,它正在扩展没有意义的应用栏。
猜你喜欢
  • 2021-12-27
  • 2020-11-09
  • 1970-01-01
  • 2020-01-05
  • 2023-03-27
  • 2019-03-11
  • 1970-01-01
  • 1970-01-01
  • 2021-08-25
相关资源
最近更新 更多