怎么给vue-cli打包的 页面body元素添加样式呢?

发布于 2022-09-06 20:43:41 字数 6128 浏览 29 评论 0

图片描述

页面被挤压了 怎么才能不被挤压上去

<template>
<div class="login">

<div class="logo">
  <div class="pic"></div>
</div>
<div class="inp">
  <div class="number">
    <i class="icon"></i>
    <input  type="text" ref="mobile" v-model="loginData.mobile" placeholder="请输入手机号" >
  </div>
  <div class="code">
    <i class="icon"></i>
    <input type="text" v-model="loginData.authCode" placeholder="请输入验证码">
    <div class="codetime">
      <button @click="getCode" class="code-btn" :disabled="!show">
        <span v-show="show">获取验证码</span>
        <span v-show="!show" class="count">{{count}}秒后可以从新获取</span>
      </button>
    </div>
    
  </div>
</div>
<div class="agree">
  <label for="select" class="radio" @touchstart="touch">
            <img ref="img1" src="../assets/svg/icon_ccc.svg"  width="18" style="vertical-align: -3px;display: none" >
            <img ref="img2" src="../assets/svg/icon_agree.svg" width="18" style="vertical-align: -3px;">
            我已经阅读并同意<span>棱镜APP用户协议</span>
        </label>
</div>
<div class="button">
  <mt-button type="primary" @click="login" :disabled="!loginData.mobile || !loginData.authCode">进入棱镜</mt-button>
</div>
<!-- <button @click="register">进入注册页</button> -->

</div>
</template>

<script>
import { Toast } from "mint-ui";
export default {
data() {

return {
  loginData: {
    mobile: "",
    authCode: ""
  },

  TIME_COUNT: 5,
  show: true,
  count: "",
  timer: null,
  flag: true
};

},
created() {},
methods: {

// 选择是否同意协议--
touch() {
  console.log(this.flag);
  if (this.flag) {
    this.flag = false;
    this.$refs.img1.style.display = "inline-block";
    this.$refs.img2.style.display = "none";
  } else {
    this.$refs.img1.style.display = "none";
    this.$refs.img2.style.display = "inline-block";
    this.flag = true;
  }
},
// 选择是否同意协议--
login() {
  console.log(this.loginData);
  let url =
    "http://dsn.apizza.cc/mock/33a3028a1c490faf003f2b6196f2cc92/data1"; /** 登录(发送 手机号 和 验证码) */
  this.$http.post(url, this.loginData).then(
    function(res) {
      if (res.body.code === 1) {
        this.$router.push({ name: "register" });
      } else if (res.body.code === 0) {
        this.$router.push({ name: "list" });
      } else {
        Toast("密码错误");
      }
    },
    function(res) {
      Toast("登录错误");
    }
  );
},
register() {
  this.$router.push({ path: "/register" });
},
// 获取验证码---
getCode() {
  this.mobile = this.$refs.mobile.value;
  let url =
    "http://dsn.apizza.cc/mock/4c0fdc85afc6c0f01766671f4f13ace3/plus/sms_vcode"; /**  获取验证码 */
  this.$http.post(url, { mobile: this.mobile }).then(
    function(res) {
      Toast({ message: "成功获取验证码", position: "bottom" });
    },
    function(res) {
      Toast("发送错误");
    }
  );

  Toast("验证码已经发送到" + this.mobile + "这个手机号上");
  if (!this.timer) {
    this.count = this.TIME_COUNT;
    this.show = false;
    this.timer = setInterval(() => {
      if (this.count > 0 && this.count <= this.TIME_COUNT) {
        this.count--;
      } else {
        this.show = true;
        clearInterval(this.timer);
        this.timer = null;
      }
    }, 1000);
  }
}
// 获取验证码---

}
};
</script>
<style lang="less" scoped>
.login {
position: absolute;
top: 0;
left: 0;
right: 0;
bottom: 0;
background: url("../../static/imgs/bgi.png") no-repeat;
background-size: cover;
.logo {

.pic {
  width: 16vw;
  height: 14vh;
  line-height: 70px;
  text-align: center;
  margin: 14vh auto;
  background: url("../../static/imgs/logo@3x.png") no-repeat;
  background-size: 100% 100%;
}
.word {
  font-size: 25px;
  font-weight: bold;
  text-align: center;
}

}
.inp {

.number {
  //   border:1px solid red;
  font-size: 0;
  margin: 10px auto;
  width: 68vw;
  height: 7vh;
  border-bottom: 1px solid #ccc;
  box-sizing: border-box;
  padding: 10px;
  .icon {
    display: inline-block;
    width: 20px;
    height: 20px;
    background: url("../../static/imgs/user@3x.png") no-repeat;
    background-size: 100% 100%;
    vertical-align: sub;
  }
  > input {
    background: none;
    outline: none;
    border: 0px;
    width: 150px;
    font-size: 14px;
    padding: 0 10px;
    color: #fff;
  }
}
.code {
  //   border:1px solid red;

  font-size: 0;
  text-align: center;
  margin: 10px auto;
  margin-top: 40px;
  width: 68vw;
  height: 7vh;
  border-bottom: 1px solid #ccc;
  box-sizing: border-box;
  .icon {
    display: inline-block;
    width: 20px;
    height: 20px;
    background: url("../assets/imgs/mima@3x.png") no-repeat;
    background-size: 100% 100%;
    vertical-align: sub;
  }
  input {
    height: 25px;
    width: 25vw;
    background: none;
    outline: none;
    border: 0px;
    font-size: 14px;
    padding: 0 10px;
    color: #fff;
  }
  .codetime {
    display: inline-block;
    button {
      outline: none;
      border: 0px;
      width: 28vw;
      height: 4vh;
      padding: 0;
      border-radius: 14vw;
    }
  }
}

}
.agree {

margin: 30px auto;
width: 100%;
height: 30px;
line-height: 30px;
text-align: center;
color: #fff;
font-size: 13px;
span {
  color: #48a1e3;
  text-decoration: underline;
}

}
.button {

text-align: center;
> button {
  outline: none;
  border: 0px;
  padding: 0;
  width: 68vw;
  height: 7vh;
  border-radius: 34vw;
  font-size: 5vw;
  font-weight: bold;
  color: #fff;
  background-color: #48a1e3;
}

}
}
</style>

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

没︽人懂的悲伤 2022-09-13 20:43:41

使用vh作为高度的单位,这是后遗症,软键盘弹出后,整个页面高度发生变化。比如说,原来的视窗高度为1334px,那么14vh的高度就是1334 x 0.14 = 186.76(px) ; 小键盘弹出来后高度变为 800px, 那么14vh的高度只有 800 x 0.14 = 112(px)了;但是vw却没有改变,所以你看到的视图是变形的。
解决方案: 统一使用vw布局;

建议参考分享手淘过年项目中采用到的前端技术对vw进行兼容处理

绿光 2022-09-13 20:43:41

我一般是这么设置

login:{
    min-height:100%;
}
一般都是页面被顶上去(IOS),你这还能出现页面被挤压
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文