rem适配与vm适配

rem的概念

rem 是移动端适配单位,是用来写移动端布局的

1rem 的大小就是1个 html 设置的 font-size 的大小

一、手写rem适配

<script>
    //rem布局适配
    // 封装一个根据屏幕自适应的rem适配
    function rem() {
        let htmlWidth = document.documentElement.clientWidth; //获取html的宽度
        let bodyWidth = document.body.clientWidth; //获取body的宽度
        let width = htmlWidth || bodyWidth

        //让html的宽度根据屏幕进行变化,设置font-size的大小
        document.documentElement.style.fontSize = (width / 750 * 100) + 'px'
    }
    //页面宽度改变时触发
    window.onresize = function() {
            rem()
        }
        // 进入页面时触发
    rem()
</script>

二、插件版的rem适配

Vant 中的样式默认使用px作为单位,如果需要使用rem单位,推荐使用以下两个工具:

1.安装并引入插件

cnpm install lib-flexible postcss-pxtorem --save-dev

2.在main.js中引入 

// 移动端适配
 import "lib-flexible/flexible"; 

3.新建一个 postcss.config.js文件配置设计稿

module.exports = {
 
      plugins: {
 
      'autoprefixer': {
 
        browsers: ['Android >= 4.0', 'iOS >= 8']
 
      },
 
      'postcss-pxtorem': {
 
        rootValue: 37.5,
 
        propList: ['*']  
 
} } }

4.这时候会报错 需要进行降级处理

npm i postcss-pxtorem@5.1.1

然后再次启动就可以了

5.注意事项:

vant是按照375px进行匹配,我们的设计图是750px,所以,在进入vant的rem适配之后,书写的     尺寸大小要按照设计图的大小减半

三、vw适配 

1.安装依赖

npm install postcss-px-to-viewport -D

2.修改根目录下的.postcssrc.js文件

// https://github.com/michael-ciniawsky/postcss-load-config
module.exports = {
  plugins: {
    autoprefixer: {
      overrideBrowserslist: ['Android 4.1', 'iOS 7.1', 'Chrome > 31', 'ff > 31', 'ie >= 8']
    },
    'postcss-px-to-viewport': {
      viewportWidth: 375, // 视窗的宽度,对应的是我们设计稿的宽度,一般是750
      unitPrecision: 3, // 指定`px`转换为视窗单位值的小数位数(很多时候无法整除)
      viewportUnit: 'vw', // 指定需要转换成的视窗单位,建议使用vw
      selectorBlackList: ['.ignore', '.hairlines'], // 指定不转换为视窗单位的类,可以自定义,可以无限添加,建议定义一至两个通用的类名
      minPixelValue: 1, // 小于或等于`1px`不转换为视窗单位,你也可以设置为你想要的值
      mediaQuery: false // 允许在媒体查询中转换`px`
    }
  }
}

3.删除原来的rem配置

(1).main.js中删除以下代码

// 移动端适配
import 'lib-flexible/flexible.js'

(2)package.json中删除以下代码

"lib-flexible": "^0.3.2",
"postcss-pxtorem": "^5.1.1",

运行起来,F12 元素 css 就是 vw 单位了

什么是vw vh

  • 属于一种新兴的移动端布局配置,功能与rem类似

  • vw 视口的最大宽度,1vw等于视口宽度的百分之一

  • vh 视口的最大高度,1vh等于视口高度的百分之一

如何自动适配vw vh 安装依赖

npm install postcss-px-to-viewport -D
  • 这个项目中,不能有rem适配的数据,不然会被顶替

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值