pc端适配不同分辨率

对于pc端来说多种分辨率的不同展示的效果不同
网页中常用的单位px,em,rem,vh,vw,%等等
这些作用是什么就不一一介绍了
今天就说一下以像素单位 px转化成rem适配的问题
px是一个比较规定死的数值,代表电脑屏幕的像素, 而rem会根据当前html的字体大小去对应不同的像素值
如果我们一个一个去将px值转化为rem那工作量可想而知,而且对于项目的进程也会有很大的影响
而ib-flexible和postcss-px2rem-exclude可以很好的做成适配

1.项目全局中安装lib-flexible

npm install lib-flexible --save

2、在项目的入口main.js文件中引入lib-flexible

import 'lib-flexible'
  1. 打开./node_modules/lib-flexible/flexible.js,找到如下片段源码:


    image.png

    image.png

    image.png

    上图更改的内容

 if (width / dpr > 540) {
            width = width * dpr;
        }

小知识:

物理像素/设备独立像素 = dpr
物理像素就是手机上的一个一个像素点,设备独立像素就是css像素
具体的内容自行百度吧 O_O


第二: 使用postcss-px2rem-exclude自动将css中的px转换成rem

1、安装postcss-px2rem-exclude

 npm install postcss-px2rem-exclude --save

2、配置 postcss-px2rem-exclude
方法(1).在项目的根目录下找到文件.postcssrc.js,在里面添加如下代码

 module.exports = {
  "plugins": {
    // to edit target browsers: use "browserslist" field in package.json
    "postcss-import": {},
    "autoprefixer": {},
    "postcss-px2rem-exclude": {  // 添加的代码
      remUnit: 75,
      exclude: /node_modules|folder_name/i // 忽略node_modules目录下的文件
    }
  }
}

方法(2).若没有.postcssrc.js这个文件的话,就找配置文件里面的package.json打开,下面代码整体添加到里面,也可行

"postcss": {
    "plugins": {
      "autoprefixer": {},
      "postcss-px2rem-exclude": {
        "remUnit": 192,
        "exclude": "/node_modules|floder_name/i"
      }
    }
  }

最后重启项目,即可生效!!!

!!!一定要注意的是style上的样式px是无法直接用工具转换的

可以自己写一个方法去转换

@function conversion($num) {
  //换算rem适配pc端
  @return $num/192; // 192代表1920分辨率
}
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容