我使用vuetify布局,我想在右侧制作按钮,但是我找到了 align-end
vuetify属性不起作用,我使用 offset-xs9
来制作右侧,但是按钮是作为v-flex
中心,如何结束它?帮助谢谢
代码类似:
<div id="app">
<v-app id="inspire">
<v-layout row wrap align-end>
<v-flex xs3 offset-xs9 align-end>
<div>
<v-btn primary dark>Normal</v-btn>
</div>
</v-flex>
</v-layout>
</v-app>
</div>
和在线Codepen
Vuetify的网格使用Flexbox。
-
align-*
在垂直轴上运行 - 您想使用
justify-*
让孩子水平翻译 -
align-*
和justify-*
仅在Flex容器上使用,因此您可以使用v-layout
而不是v-flex
,或者仅在同一v-layout
上使用两个属性
这是您的固定笔。
kael回答很好,但我觉得这里还有更多解释。
第一个问题是使用xs3 offset-xs9
:
<v-flex xs3 offset-xs9 align-end>
这将不允许我们使用flexbox
网格系统将内容放在有意义的位置(如您所描述的那样)。
第二个问题是正确使用Vuetify的Flexbox网格属性,例如,使用v-layout
和v-flex
上的align-end
。
<v-layout row wrap align-end>
<v-flex xs3 offset-xs9 align-end>
这就是我们所追求的:
- 将所有内容放在最右边的布局
- 一个只能占用其内容大小的容器
实现这两个目标,将确保您的内容将放置在v-layout
容器的右端,并且您将使用xs3
和offset-xs-9
等避免使用各种怪异的空间。
因此,对于v-layout
,正如Kael所述,我们需要使用justtify-end
。由于您的v-layout
的方向是row
,因此我们使用justify
进行水平定位。
对于v-flex
,我们需要确保它仅占据其内容的宽度。我们将使用shrink
为此,因此最终模板应该看起来像:
<div id="app">
<v-app id="inspire">
<v-layout row wrap justify-end>
<v-flex shrink>
<v-btn primary dark>Normal</v-btn>
</v-flex>
</v-layout>
</v-app>
</div>
您必须在<v-flex>
标签中使用text-xs-right
代替align-end
(请参阅https://vuetifyjs.coms.com/ru/layout/alignment)。
您也可以使用v-pacer将任何东西都推到右侧。
<div id="app">
<v-app id="inspire">
<v-layout>
<v-spacer></v-spacer>
<v-btn primary dark>Normal</v-btn>
</v-layout>
</v-app>
</div>
如果您想将元素对齐到右下角,则可以这样做:
<v-img height="120px" class="white--text" :src="xxxx.img">
<v-layout fill-height column ma-0 >
<v-spacer></v-spacer>
<v-flex class="text-xs-right" shrink>
<span class="grey darken-4">XXXXX</span>
</v-flex>
</v-layout>
</v-img>
尝试以下:
<p class="text-xs-right">
<v-btn class="d-inline-block">Normal</v-btn>
</p>