vue 中使用rem布局

要想移动端适配 并使用 rem  您需要先看这篇文章,配置好less ➡️ 在vue 中使用 less,就可以使用rem了

如果项目已经开发的差不多了,没有用到rem 又要使用rem,您用这招。

postcss-pxtorem:转换px为rem的插件

安装 postcss-pxtorem

npm install postcss-pxtorem --save

新建rem.js文件

const baseSize = 32

// 设置 rem 函数

functionsetRem () {

 // 当前页面宽度相对于 750 宽的缩放比例,可根据自己需要修改。

 const scale = document.documentElement.clientWidth / 750

 // 设置页面根节点字体大小

 document.documentElement.style.fontSize = (baseSize * Math.min(scale, 2)) + 'px'

}

// 初始化

setRem()

// 改变窗口大小时重新设置 rem

window.onresize = function() {

 setRem()

}

并引用进main.js文件内

import './rem'

 修改.postcssrc.js 文件

在.postcssrc.js文件内的 plugins 添加以下配置,配后就可以在开发中直接使用 px 单位开发了

"postcss-pxtorem": {

         "rootValue": 32,

         "propList": ["*"]

}

helloworld.vue

<template>

 <div class="hello">

 test

 </div>

</template>


<script>

 export default{

 name: 'HelloWorld',

 data() {

  return{

  msg: 'Welcome to Your Vue.js App'

  }

 }

 }

</script>


<style scoped>

 .hello {

 text-align: center;

 font-size: 20px;

 width: 300px;

 height: 400px;

 background:red;

 }

</style>

效果

此处已vue为例,在使用vue-cli搭建好项目框架后,在目录结构的index.html文件中添加一段js代码:

fnResize();

      window.onresize = function () {

        fnResize();

      }

      function fnResize() {

        var deviceWidth = document.documentElement.clientWidth || window.innerWidth;

        if (deviceWidth >= 750) {

          deviceWidth = 750;

        }

        if (deviceWidth <= 320) {

          deviceWidth = 320;

        }

        document.documentElement.style.fontSize = (deviceWidth / 7.5) + 'px';

      }

然后在写css就可以将px单位换成rem.

这里设置的比例是100px=1rem,

例如:宽度为100px时,可以直接写成1rem

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容