我正在try 创建网格布局,但遇到了问题.

我试图创建的布局附在下图中.表现比解释容易.

  • 一个侧面板卡片布局,将填充一个项目列表.A.
  • 2元件顶部面板.
  • 一个大的主面板来填充剩余的空间

Current Layout

使用vuetify网格布局系统,我try 了一下,但无法很好地填充所有空间.我的代码如下.

有没有一个很好的方法来创建这个网格布局?

<v-container fluid grid-list-md box>
  <v-layout row>

    <v-flex d-flex xs3>
      <v-layout row wrap>
        <v-card color="orange lighten-2" tile flat>
          <v-card-text>{{ lorem.slice(0, 90) }}</v-card-text>
        </v-card>

        <v-divider></v-divider>

        <v-card color="orange lighten-2" tile flat>
          <v-card-text>{{ lorem.slice(0, 90) }}</v-card-text>
        </v-card>

        <v-divider></v-divider>

        <v-card color="orange lighten-2" tile flat>
          <v-card-text>{{ lorem.slice(0, 90) }}</v-card-text>
        </v-card>

        <v-divider></v-divider>

        <v-card color="orange lighten-2" tile flat>
          <v-card-text>{{ lorem.slice(0, 90) }}</v-card-text>
        </v-card>
      </v-layout>

    </v-flex>

    <v-flex d-flex xs9>

      <v-layout row wrap>
        <v-layout row>
          <v-flex d-flex>
            <v-card color="blue-grey" dark tile flat>
              <v-card-text>{{ lorem }}</v-card-text>
            </v-card>
          </v-flex>

          <v-flex d-flex>
            <v-card color="blue-grey" dark tile flat>
              <v-card-text>{{ lorem }}</v-card-text>
            </v-card>
          </v-flex>
        </v-layout>

        <v-layout row>
          <v-flex d-flex xs9>
            <v-card color="blue-grey" dark tile flat>
              <v-card-text>{{ lorem }}</v-card-text> 
            </v-card>
          </v-flex>
        </v-layout>
      </v-layout>

    </v-flex>
  </v-layout>
</v-container>

推荐答案

可以通过使用填充高度props 和断点来实现该格式.拥有<v-layout row wrap>将迫使拥有xs12的大盒子占据整个下一行,所以你不必创建自己的布局.

    <v-layout row wrap>
        <v-flex d-flex xs6>
          <v-card color="blue-grey" dark tile flat>
            <v-card-text>{{ lorem }}</v-card-text>
          </v-card>
        </v-flex>

        <v-flex d-flex xs6>
          <v-card color="blue-grey" dark tile flat>
            <v-card-text>{{ lorem + lorem }}</v-card-text>
          </v-card>
        </v-flex>

        <v-flex fill-height d-flex xs12>
         <v-card color="blue-grey" dark tile flat>
           <v-card-text>{{ lorem + lorem + lorem}}</v-card-text>
         </v-card>
        </v-flex>
    </v-layout>

这里有一个codepen,显示了它的行动.

Vue.js相关问答推荐

当props 的值改变时如何更新类'

vue : 多个样式的类绑定在一个

VuetifyJS:如何摆脱 v-stepper 组件的提升?

Vue + Webpack 构建显示空白页面

如何在Typescript语言Vuejs中使用watch功能?

如何只查看数组中的一个对象?

Vue3在'vue-router'中找不到导出'createWebHistory,createRouter'

如何修复跨域读取阻塞 (CORB) 阻止了 MIME 类型应用程序/json 的跨域响应问题?

如何在 Vue.js 中触发点击 ref

包含 Vue.js v-if 和 v-for 指令的 HTML 标签在加载时flash

为什么 CSS 关键帧动画在具有范围样式的 Vue 组件中被 destruct ?

如何在 .js 文件中使用 Vue i18n 翻译?

将自定义部分添加到 v-autocomplete 下拉列表

如何使用 laravel-mix 将 bootstrap-vue 加载到 Laravel 5 中?

如何使表格行可点击并展开行 - vue.js - element-ui

Vue-test-utils:在单个测试中多次使用 $nextTick

带有子菜单的 Vuetify 导航抽屉

Vue组件未在laravel 5.3中使用Passport 显示

如何访问通用 javascript 模块中的当前路由元字段

将它们分开时将 Django 的 csrf_token 放入 Vuejs