vue常见问题

538 阅读4分钟

对在使用vue的过程中遇到的问题总结

设置背景图片

  • 设置静态背景图 html:
<template>
  <section class="login-container">
  <p1>这里是内容</p1>
  </section>
</template>

css:

.login-container {
  background: url(../../assets/img/login/login_bg0.jpg) 50% 0 no-repeat fixed;
  background-size: cover;
  width: 100%;
  height: 100%;
  }

注意:此时background值的格式是url(静态照片资源路径),举例url(../../assets/img/login/login_bg0.jpg)

  • 绑定动态背景图 html:
<template>
  <section class="login-container" :style="backgroundObject">
  <p1>这里是内容</p1>
  </section>
</template>

js代码:

  1. 在data里面定义绑定属性backgroundObject
//在data里面定义绑定属性backgroundObject
data() {
    return {
      backgroundObject:{
        backgroundImage: "url(" + require("../../assets/img/login/login_bg0.jpg") + ")",
      },
    }

注意: 作用于背景图是backgroundImage属性而不是background属性.

backgroundImage值静态资源格式:"url(" + require("静态照片资源路径") + ")"

backgroundImage值动态资源格式:"url(" + http向后台获取的资源路径 + ")"

  1. js代码对动态获取的照片进行处理
 // 获取背景图片
   backgroundImgFun() {
     this.$request.fetchBackgroundImage().then((res) => {
       if (res.code === 200) {
         if (res.data) {
           //this.$getPath(res.data)为照片的http路径
           this.backgroundObject.backgroundImage="url(" + this.$getPath(res.data) + ")";
         } else {
           this.loginImg = require("../../assets/img/login-bg.jpg");
         }
       }
     });
   },

音频和照片的动态绑定

html:

 //音频
  <audio ref="audio" controls hidden="true">
        <source :src="audioSrc" type="audio/mpeg" />
  </audio>

data绑定:

data() {
    return {
    //静态默认资源写法
     audioSrc: require(`@/assets/audio/black_alerm.mp3`),
    }

可对audioSrc赋值动态音频http资源路径,照片和音频一样。

文档流和脱离文档流

css提供了三种基本的定位机制:普通流定位浮动来实现页面排版

文档流(普通流

html的元素主要分三种:块状元素行内元素行内块状元素

块状元素: 独占一行,在文本流中从上到下一个接一个地排列,能设置宽高。

常用元素:div, p, h1-h6, ul, li, dl, dt, dd , form , table

行内元素:在一行中并排排列,遇到父元素的边沿换行继续排列,不能设置宽高

常用元素:a, span, strong, u, em

行内块状元素:既能在一行中并排排列,也能设置宽高

常用元素:img, input, textarea

positon定位

positon常用的属性有:absolute,relative,fixed

  • absolute 相对于父级元素进行定位,脱离完档流,不占原先文档处的位置,父级元素最好使用 positon : relative定位。

html

  <div class="div">
    <div class="div1">满堂花醉三千客</div>
    <div class="div2">一剑光寒十四州</div>
    <div class="div3">满床清梦压星河</div>
  </div>

css

.div{
  width: 200px;
  height: 600px;
  position: relative;
  border:1px solid;
}
.div1{
  width: 200px;
  height: 200px;
  background:blue;
}
.div2{
  width: 200px;
  height: 200px;
  background:red;
  position: absolute;
  left: 0px;
  top: 0px;
}
.div3{
  width: 200px;
  height: 200px;
  background:green;
}

总结:脱离文档流后,后面的元素会补上空位

  • relative 相对于元素原先所在的位置进行偏移,但仍在文档中占据位置,后面元素不能补上.但后面元素同样也可以通过脱离文档流层叠在此位置上。

html

   <div class="div">
      <div class="div1">满堂花醉三千客</div>
      <div class="div2">一剑光寒十四州</div>
      <div class="div3">满床清梦压星河</div>
    </div>

css

    .div{
      width: 100px;
      height: 300px;
      position: relative;
      border:1px solid;
    }
    .div1{
      width: 100px;
      height: 100px;
      background:blue;
    }
    .div2{
      width: 100px;
      height: 100px;
      background:red;
      position: relative;
      left: 0px;
      bottom:100px;
    }
    .div3{
      width: 100px;
      height: 100px;
      background:green;
    }

总结: 脱离文档流,元素原先位置依旧会被占据,但元素本身已经浮到了其他位置,与其他元素层叠。

  • fixed 相对于浏览器(body)定位,脱离文档流

html

   <div class="div">
      <div class="div1">满堂花醉三千客</div>
      <div class="div2">一剑光寒十四州</div>
      <div class="div3">满床清梦压星河</div>
    </div>

css

    .div {
      width: 100px;
      height: 300px;
      position: relative;
      border: 1px solid;
    }
    .div1 {
      width: 100px;
      height: 100px;
      background: blue;
    }
    .div2 {
      width: 100px;
      height: 100px;
      background: red;
      position: fixed;
      left: 0px;
      top: 0px;
    }
    .div3 {
      width: 100px;
      height: 100px;
      background: green;
    }

总结:脱离文档流,原位置其他元素可以补上

float定位

半脱离文档流,使得块状元素可以排成一列(达到类似行内元素的效果),但其他元素不能补上原先元素占据的位置,除非当其他元素也是脱离半脱离文档流补上这个位置。

html

   <div class="div">
      <div class="div1">满堂花醉三千客</div>
      <div class="div2">一剑光寒十四州</div>
      <div class="div3">满床清梦压星河</div>
    </div>

css

    .div {
      width: 600px;
      height: 300px;
      position: relative;
      border: 1px solid;
    }
    .div1 {
      width: 100px;
      height: 100px;
      background: blue;
      float: left;
      margin-left: 20px;
      margin-top: 20px;
    }
    .div2 {
      width: 100px;
      height: 100px;
      background: red;
      float: left;
      margin-left: 20px;
      margin-top: 20px;
    }
    .div3 {
      width: 100px;
      height: 100px;
      background: green;
      float: left;
      margin-left: 20px;
      margin-top: 20px;
    }

z-index属性简单介绍

7阶层叠

  • z-index 用途

设置元素的堆叠顺序:该属性设置一个元素沿Z轴的定位位置,为负数离用户越远,为正数离用户越近越大离用户越近