vue背景图显示不全

在Vue项目中,登录页面的背景图片出现显示不完整的问题,主要表现为缺少左下角和右上角的蓝色部分。通过调整CSS样式,特别是`.img2`下的`position`和`margin-top`属性,将`margin-top`设置为15%,解决了滚动条出现的问题,确保背景图正确显示。

登录页面的图片没有显示全,缺少左下角和右上角的蓝色部分.

这是没改之前的代码:

<template>

  <div class="login-container">
   
     <div class="img1" >
    <div class="img2">
         <div class="logincoter">
         
    <el-form autoComplete="on" :model="loginForm" :rules="loginRules" ref="loginForm" label-position="left"
             label-width="0px"
             class="card-box login-form">
       
      <el-form-item prop="username" style="width:50%; margin-left: 40px; ">
        
        <el-input class="tupian" v-model="loginForm.username" autoComplete="on" style="margin-left:20%; border-bottom:1px solid #333"  placeholder="请输入管理员姓名"/>
      </el-form-item>
      <el-form-item prop="password" style="width:50%; margin-left: 40px; ">
       
        <el-input class="tupian1" type="password" @keyup.enter.native="handleLogin" v-model="loginForm.password"
                  autoComplete="on" style="margin-left:20%; border-bottom:1px solid #333;" placeholder="请输入登录密码"></el-input>
         <el-checkbox v-model="checked" style="color:#a0a0a0;margin-left: 40px;">记住密码</el-checkbox>
      </el-form-item>


     
      <el-form-item style="width:30%;display:block;margin-left: 70px;">
        <el-button class="lokin" style="width:210px;border-radius:20px;color:white; "  :loading="loading" @click.native.prevent="handleLogin">
          登录
        </el-button>

      </el-form-item>

       <el-form-item style="width:30%; display:block;margin-left: 70px;margin-top:-10px;">

         
       
         <a href="服务器的路径">
        <el-button style="width:210px;border-radius:20px; ">
          关闭
        </el-button>
        		</a>
       
      </el-form-item>
    </el-form>
       </div>
    </div>
    </div>
  </div>
</template>
<script>
  export default {
    name: 'login',
    data() {
      return {
        loginForm: {
          username: '',
          password: '',
         
        },
         checked:"",
        loginRules: {
          username: [{required: true, trigger: 'blur', message: "请输入用户名"}],
          password: [{required: true, trigger: 'blur', message: "请输入密码"}]
        },
        loading: false,
        
      }
    },
     created() {
       
        this.getCookie();
      //  this.clearCookie();
  


  },
  
    methods: {

       
      
      handleLogin() {
        var vm = this
        // if(this.checked=true){
        //     //传入账号名,密码,和保存天数3个参数
        //   this.setCookie(this.loginForm.username,this.loginForm.password,7);
        // }
        this.$refs.loginForm.validate(valid => {
          if (valid) {
            var loginfrom = {
              password : this.$md5(this.loginForm.password),
              username : this.loginForm.username
              
            }
            console.log(loginfrom);
            this.loading = true
            this.$store.dispatch('Login', loginfrom).then(data => {
              this.loading = false
              if ("success" === data.result) {
                  var remeberFlag;
             //判断复选框是否被勾选
             if (vm.checked == true) {
                 // console.log("chec
### Vue 中设置背景图显示的解决方案 在 Vue 项目中,当尝试通过 CSS 的 `background` 属性设置背景图片时,可能会遇到图片无法正常加载的情况。以下是针对该问题的具体分析以及可行的解决方案。 #### 方法一:调整相对路径 如果图片存储于项目的 `assets` 或其他静态资源目录下,则需要确保路径正确无误。通常情况下,Vue CLI 使用 Webpack 处理静态资源,因此可以通过以下方式指定路径: ```css <style> .example { background-image: url('@/assets/images/example.jpg'); } </style> ``` 上述写法利用了 Vue 的模块解析功能,其中 `'@'` 是指向 `src` 文件夹的别名[^1]。 --- #### 方法二:使用 `require` 动态导入 对于动态绑定的场景,可以借助 JavaScript 的 `require` 函数来处理图片路径。例如: ```html <template> <div class="example" :style="{ backgroundImage: 'url(' + imgPath + ')' }"></div> </template> <script> export default { data() { return { imgPath: require('@/assets/images/example.jpg') // 动态引入图片 }; } }; </script> ``` 此方法适用于需要动态切换背景图的场景,并能有效规避打包过程中路径错误的问题[^4]。 --- #### 方法三:配置公共路径 (`public` 目录) 将图片放置于 `public` 文件夹内,这样可以直接通过绝对路径访问图片而无需经过 Webpack 编译。例如: ```css <style> .example { background-image: url('/images/example.jpg'); /* public/images/ 下的图片 */ } </style> ``` 这种方式适合那些需要被编译器优化的公共资源文件[^2]。 --- #### 方法四:结合数组语法实现复杂样式绑定 如果希望在同一元素上同时应用多种样式(包括背景图片),可采用 Vue 提供的对象或数组形式绑定样式的方式。例如: ```html <template> <div :style="[baseStyles, imageStyle]">这是一个带有背景图的 div</div> </template> <script> import { ref } from 'vue'; export default { setup() { const baseStyles = ref({ width: '300px', height: '200px' }); const imageStyle = ref({ backgroundImage: `url(${require('@/assets/images/example.jpg')})`, backgroundSize: 'cover', backgroundPosition: 'center' }); return { baseStyles, imageStyle }; } }; </script> ``` 这种方法仅能够灵活管理同部分的样式逻辑,还支持复杂的动态效果[^3]。 --- ### 总结 以上提供了四种同的解决策略,具体选择取决于实际需求和开发环境: - 如果仅需简单地定义固定背景图,推荐 **方法一** 和 **方法三**; - 对于更高级的需求或者涉及动态数据渲染的情形,则建议考虑 **方法二** 及其扩展版本——即基于对象或数组的形式完成样式的组合绑定。 ---
评论 2
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值