【问题标题】:Vuetify vertical centering within v-flex elementv-flex 元素中的 Vuetify 垂直居中
【发布时间】:2018-05-22 14:05:13
【问题描述】:

我正在尝试在组件之间使用垂直空格,或者至少使用框架的 flexbox 功能。

这是我想用一张图片实现的目标,第一张图片代表我当前的代码所拥有的,第二张是我想要实现的:

这是我写的基本标记,如果你想玩的话,我在 jsFiddle 上复制了它:https://jsfiddle.net/tgpfhn8m/357/

<v-layout row wrap>
  <v-flex xs8>
    <v-card class="red" height="400px">
      Fixed Height Card
    </v-card>
  </v-flex>
  <v-flex xs4 class="purple">
    <v-card class="green">
        First Card
    </v-card>
    <v-card class="green">
        Second Card
    </v-card>
  </v-flex>
</v-layout>

我尝试了什么?

我尝试了各种方法。第一个是将v-layout:column 包含在第二列中,然后对其应用justify-space-between。没有成功(https://jsfiddle.net/tgpfhn8m/358/):

<v-flex xs4 class="purple">
  <v-layout column justify-space-between>
    <v-card class="green">
      First Card
    </v-card>
    <v-card class="green">
        Second Card
    </v-card>
  </v-layout>
</v-flex>

我尝试了很多其他元素和属性的组合,也没有成功。

我做错了什么?甚至可以使用原生 Vuetify 元素实现我想要的吗?

【问题讨论】:

    标签: vuetify.js


    【解决方案1】:

    你必须删除中间的v-flex

    您也可以在带有最后一张卡片的 v-layout 上使用 align-end

    如果您想在两列之间保持填充,您可以在第一个 v-flex 中添加类 pr-xx 一个介于 0 和 5 之间的数字。

    要保持第二列填充高度,请在 v-layout 上使用 fill-height 包裹在 v-flex 中。

    Fiddle with padding

    Spacing doc from Vuetify

    代码答案:

    <v-app>
       <v-layout row wrap >
          <v-flex xs8 class="pr-3">
             <v-card class="red" height="400px">
                Fixed Height Card
             </v-card>
          </v-flex>
          <v-flex >
             <v-layout column justify-space-between class="purple" fill-height>
                <v-card class="green">
                   First Card
                </v-card>
                <v-card class="green">
                   Second Card
                </v-card>
             </v-layout>
          </v-flex>
       </v-layout>
    </v-app>
    

    【讨论】:

    • 我认为你已经接近了,但第二列并没有填满整个 restan 宽度:i.imgur.com/T42F4u7.png
    • 问题中没有提出这个问题,但我编辑了我的答案以保持高度填充在第二列中。
    • 谢谢,现在完美了:)
    【解决方案2】:

    对于其他需要此建议的人:

    &lt;v-layout align-center&gt;&lt;v-flex fill-height&gt; 一起使用

    这会垂直对齐孩子:

    <v-layout align-center>
      <v-flex fill-height></v-flex>
      <v-flex fill-height></v-flex>
    </v-layout>
    

    【讨论】:

      猜你喜欢
      • 2019-11-13
      • 1970-01-01
      • 1970-01-01
      • 2013-03-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-04-20
      • 1970-01-01
      相关资源
      最近更新 更多