移动端的适配:px转为rem

157 阅读1分钟

移动端的适配

前言

随着科技的快速发展,手机也成为了我们日常生活中的一部分,能够让我们便利快捷的随时的能够浏览网页。可手机的屏幕尺寸不一,导致我们传统的单位px(像素)无法满足用户需求。于是css3中新增了一个单位:rem.
rem是相对长度单位。相对于根元素(即html元素)font-size计算值的倍数的一个css单位,也就是我们 前端常说的适配单位rem。因为rem的特性相对长度单位,常被用来做移动适配,pc端页面不推荐使用rem。

rem

rem-媒体查询

主要是为了解决手机屏幕大小不同,分辨率不同,如何设置不同的HTML标签字号的问题。 媒体查询能够检测视口的宽度,然后编写差异化的CSS样式。 当某个条件成立,执行对应的CSS样式。

@media(width:375){
   html{
    font-szie37.5px;
    }
}
.box{
    width : 5rem
    height : 3rem
}       //当视口宽度为375的时候    宽度就是5*37.5  高度是3*3.75$
//目前rem布局中,将网页等分成10份,HTML标签的字号为视口宽度的1/10。

rem的引入方式

我主要用的是vue的框架,所以主要说一下vue中做rem适配的方法, 用框架还是需要依赖插件

//首先,安装amfe-flexible依赖,同时适应pc和移动端。
npm install amfe-flexible -S
//下一步就是安装px2rem-loader,px自动转化为rem
npm install px2rem-loader -D
// 在main.js中引入 
import 'amfe-flexible'
// 在vue.config.js中配置
module.exports = {
    chainWebpack: config => {
        config.module
            .rule('scss')
            .test(/.scss$/)
            .oneOf('vue')
            .use('px2rem-loader')
            .loader('px2rem-loader')
            .before('postcss-loader') // this makes it work.
            .options({ 
            remUnit: 75, //根据视觉稿,rem为px的十分之一,750px  75rem
            remPrecision: 8 //保留8位小数
            })
            .end()
    }
}

配置完成重新启动项目即可