我有此代码笔:https://codepen.io/anon/pen/KBzERJ
如果向下滚动,您可以看到该卡。我需要这张卡片出现在红色容器上方。因此,红色容器填充屏幕,并且浮动卡位于红色容器上方屏幕中间。
new Vue({
el: '#app',
data: () => ({
drawer: null
}),
props: {
source: String
}
})
<link rel="stylesheet prefetch" href="https://fonts.googleapis.com/css?family=Roboto:300,400,500,700|Material+Icons">
<link rel="stylesheet prefetch" href="https://unpkg.com/vuetify/dist/vuetify.min.css">
<script src="https://unpkg.com/vue/dist/vue.js"></script>
<script src="https://unpkg.com/vuetify/dist/vuetify.min.js"></script>
<div id="app">
<v-app id="inspire">
<v-content>
<v-container style="background:red" fill-height> </v-container>
<v-container fluid fill-height>
<v-layout align-center justify-center>
<v-flex xs12 sm8 md4>
<v-card class="elevation-12">
<v-toolbar dark color="primary">
<v-toolbar-title>Login form</v-toolbar-title>
<v-spacer></v-spacer>
<v-tooltip bottom>
<v-btn icon large :href="source" target="_blank" slot="activator">
<v-icon large>code</v-icon>
</v-btn>
<span>Source</span>
</v-tooltip>
</v-toolbar>
<v-card-text>
<v-form>
<v-text-field prepend-icon="person" name="login" label="Login" type="text"></v-text-field>
<v-text-field prepend-icon="lock" name="password" label="Password" id="password" type="password"></v-text-field>
</v-form>
</v-card-text>
<v-card-actions>
<v-spacer></v-spacer>
<v-btn color="primary">Login</v-btn>
</v-card-actions>
</v-card>
</v-flex>
</v-layout>
</v-container>
</v-content>
</v-app>
</div>
答案 0 :(得分:3)
查看更新后的codepen
保持此结构。基本上将<v-container fluid fill-height>
放在<v-container style="background:red" fill-height>
<div id="app">
<v-app id="inspire">
<v-content>
<v-container style="background:red" fill-height>
<v-container fluid fill-height>
<v-layout align-center justify-center>
<v-flex xs12 sm8 md4>
<v-card class="elevation-12">
<v-toolbar dark color="primary">
<v-toolbar-title>Login form</v-toolbar-title>
<v-spacer></v-spacer>
<v-tooltip bottom>
<v-btn
icon
large
:href="source"
target="_blank"
slot="activator"
>
<v-icon large>code</v-icon>
</v-btn>
<span>Source</span>
</v-tooltip>
</v-toolbar>
<v-card-text>
<v-form>
<v-text-field prepend-icon="person" name="login" label="Login" type="text"></v-text-field>
<v-text-field prepend-icon="lock" name="password" label="Password" id="password" type="password"></v-text-field>
</v-form>
</v-card-text>
<v-card-actions>
<v-spacer></v-spacer>
<v-btn color="primary">Login</v-btn>
</v-card-actions>
</v-card>
</v-flex>
</v-layout>
</v-container>
</v-container>
</v-content>
</v-app>
</div>
new Vue({
el: '#app',
data: () => ({
drawer: null
}),
props: {
source: String
}
})
<link rel="stylesheet prefetch" href="https://fonts.googleapis.com/css?family=Roboto:300,400,500,700|Material+Icons">
<link rel="stylesheet prefetch" href="https://unpkg.com/vuetify/dist/vuetify.min.css">
<script src="https://unpkg.com/vue/dist/vue.js"></script>
<script src="https://unpkg.com/vuetify/dist/vuetify.min.js"></script>
<div id="app">
<v-app id="inspire">
<v-content>
<v-container style="background:red" fill-height>
<v-container fluid fill-height>
<v-layout align-center justify-center>
<v-flex xs12 sm8 md4>
<v-card class="elevation-12">
<v-toolbar dark color="primary">
<v-toolbar-title>Login form</v-toolbar-title>
<v-spacer></v-spacer>
<v-tooltip bottom>
<v-btn icon large :href="source" target="_blank" slot="activator">
<v-icon large>code</v-icon>
</v-btn>
<span>Source</span>
</v-tooltip>
</v-toolbar>
<v-card-text>
<v-form>
<v-text-field prepend-icon="person" name="login" label="Login" type="text"></v-text-field>
<v-text-field prepend-icon="lock" name="password" label="Password" id="password" type="password"></v-text-field>
</v-form>
</v-card-text>
<v-card-actions>
<v-spacer></v-spacer>
<v-btn color="primary">Login</v-btn>
</v-card-actions>
</v-card>
</v-flex>
</v-layout>
</v-container>
</v-container>
</v-content>
</v-app>
</div>
另一种方式
在包含登录表单的容器上添加一个类,并添加以下CSS
new Vue({
el: '#app',
data: () => ({
drawer: null
}),
props: {
source: String
}
})
.v-content__wrap {
position: relative;
}
.login-container {
position: absolute;
padding: 20px;
top: 50%;
left: 50%;
transform: translate(-50%, -50%);
}
<link rel="stylesheet prefetch" href="https://fonts.googleapis.com/css?family=Roboto:300,400,500,700|Material+Icons">
<link rel="stylesheet prefetch" href="https://unpkg.com/vuetify/dist/vuetify.min.css">
<script src="https://unpkg.com/vue/dist/vue.js"></script>
<script src="https://unpkg.com/vuetify/dist/vuetify.min.js"></script>
<div id="app">
<v-app id="inspire">
<v-content>
<v-container style="background:red" fill-height> </v-container>
<v-container fluid fill-height login-container>
<v-layout align-center justify-center>
<v-flex xs12 sm8 md4>
<v-card class="elevation-12">
<v-toolbar dark color="primary">
<v-toolbar-title>Login form</v-toolbar-title>
<v-spacer></v-spacer>
<v-tooltip bottom>
<v-btn icon large :href="source" target="_blank" slot="activator">
<v-icon large>code</v-icon>
</v-btn>
<span>Source</span>
</v-tooltip>
</v-toolbar>
<v-card-text>
<v-form>
<v-text-field prepend-icon="person" name="login" label="Login" type="text"></v-text-field>
<v-text-field prepend-icon="lock" name="password" label="Password" id="password" type="password"></v-text-field>
</v-form>
</v-card-text>
<v-card-actions>
<v-spacer></v-spacer>
<v-btn color="primary">Login</v-btn>
</v-card-actions>
</v-card>
</v-flex>
</v-layout>
</v-container>
</v-content>
</v-app>
</div>
评论中建议的另一种方式
只需保留一个填充高度容器
new Vue({
el: '#app',
data: () => ({
drawer: null
}),
props: {
source: String
}
})
<link rel="stylesheet prefetch" href="https://fonts.googleapis.com/css?family=Roboto:300,400,500,700|Material+Icons">
<link rel="stylesheet prefetch" href="https://unpkg.com/vuetify/dist/vuetify.min.css">
<script src="https://unpkg.com/vue/dist/vue.js"></script>
<script src="https://unpkg.com/vuetify/dist/vuetify.min.js"></script>
<div id="app">
<v-app id="inspire">
<v-content>
<v-container style="background:red" fluid fill-height login-container>
<v-layout align-center justify-center>
<v-flex xs12 sm8 md4>
<v-card class="elevation-12">
<v-toolbar dark color="primary">
<v-toolbar-title>Login form</v-toolbar-title>
<v-spacer></v-spacer>
<v-tooltip bottom>
<v-btn icon large :href="source" target="_blank" slot="activator">
<v-icon large>code</v-icon>
</v-btn>
<span>Source</span>
</v-tooltip>
</v-toolbar>
<v-card-text>
<v-form>
<v-text-field prepend-icon="person" name="login" label="Login" type="text"></v-text-field>
<v-text-field prepend-icon="lock" name="password" label="Password" id="password" type="password"></v-text-field>
</v-form>
</v-card-text>
<v-card-actions>
<v-spacer></v-spacer>
<v-btn color="primary">Login</v-btn>
</v-card-actions>
</v-card>
</v-flex>
</v-layout>
</v-container>
</v-content>
</v-app>
</div>
答案 1 :(得分:0)
https://codepen.io/anon/pen/pZymrW
仅使用一个容器并为其设置样式:
<v-container fill-height class="red">
<v-layout align-center justify-center>
<v-flex xs12 sm8 md4>
//Centered content i.e. card
</v-flex>
</v-layout>
</v-container>
还要注意,您可以使用class="red"
代替style="background:red"
,以便获得Vuetify
的颜色,这很可能是您首先要的颜色。
另请参见v-container
API(在搜索框中输入v-container
)。