将背景图像高度设置为视口高度

问题描述 投票:2回答:2

在我使用Nuxt.jsVuetify.js应用程序中,我想为整个内容设置背景图像:

    <v-content>
      <v-img
        src="https://picsum.photos/id/11/500/300"
      >
        <v-container justify-center fill-height>
          <v-row justify="center" align="center">
            <v-col cols="12">
              <nuxt />
            </v-col>
          </v-row>
        </v-container>
      </v-img>
    </v-content>

问题是内容没有垂直居中,因为图像占据了窗口的整个高度,因此我需要向下滚动才能看到内容。

是否有一种方法可以将图像的高度设置为视口高度的高度,以使我的内容垂直居中,并且窗口不会由于图像而向下滚动?

如果页面的内容很长,我应该可以向下滚动并仍然看到设置为页面背景的图像

如果有时间运行,请在Github上使用最低限度的demo code

javascript css vue.js vuetify.js nuxt
2个回答
1
投票

高度:100vh?

vw相对于视口宽度的1%*vh相对于视口高度的1%*

https://www.w3schools.com/cssref/css_units.asp


1
投票

不是真正的vue-javascript解决方案,而是CSS解决方案。以下设置将生成整页背景图像,并且内容在没有滚动条的情况下垂直对齐。

编辑:使用静态资产

在您的模板中:

<v-content 
  :style="`background-image: url(${require('../assets/image.jpg')})`" 
  class="fill-height bg-image">
  <v-container justify-center fill-height>
    <v-row justify="center" align="center">
      <v-col cols="12" justify="center" style="border: 1px solid;">
        <nuxt />
      </v-col>
    </v-row>
  </v-container>
</v-content>

以及您的样式:

<style>
 .bg-image {
   background-repeat: no-repeat;
   background-position: center center;
   background-attachment: fixed;
   background-size: cover;
 }
</style>
© www.soinside.com 2019 - 2024. All rights reserved.