vue 如何让PC端不同屏幕大小分辨率自适应(屏幕自适应)(postcss-px2rem、px2rem-loader、lib-flexible)

vue 如何让PC端不同屏幕大小分辨率自适应

前提:因为项目需求是在已有的项目里面增加自适应,不影响其他页面的已有的布局,以下方法仅供参考。

1、安装postcss-px2rem 、px2rem-loader、lib-flexible

npm install postcss-px2rem px2rem-loader --save
npm i lib-flexible --save

2、在根目录src中新建util目录下新建flexible.js等比适配文件
找到node_modules里的lib-flexible包,拷贝一份放在utils里面取名为flexible.js,修改lib-flexible的源码,(更改refreshRem函数)修改为下面的代码就可以了,当然if判断是根据自己需求的调整。
目的:因为lib-flexible的源码是针对移动端的设计方案,我们要实现PC的自适应所以屏幕尺寸也要更换。

  function refreshRem() {
    var width = docEl.getBoundingClientRect().width;
    // if (width / dpr > 540) {
    //     width = 540 * dpr;
    // }
    if (width / dpr < 810) {
      width = 810 * dpr;
    }
    if (width / dpr < 1300) {
      width = 1300 * dpr;
    }
    if (width / dpr < 1920) {
      width = 1920 * dpr;
    }
      if (width / dpr < 2560) {
      width = 2560 * dpr;
    }
    var rem = width / 10;
    docEl.style.fontSize = rem + "px";
    flexible.rem = win.rem = rem;
  }

3、在 main.js中引入我们刚修改过的flexible.js文件(因为我们更改了源码 ,所有我们需要引入我们改过的文件)

import "@/utils/flexible";

4、在vue.config.js中配置插件

// // 引入等比适配插件
const px2rem = require("postcss-px2rem");
// 配置基本大小
const postcss = px2rem({
  //配置rem基准值 基准大小 baseSize
  remUnit: 192, // 设计稿尺寸1920/10
});
module.exports = {
 chainWebpack: (config) => {
     config.module
    .rule("css")
    .test(/\.css$/)
    .oneOf("vue")
    .use("px2rem-loader")
    .loader("px2rem-loader")
    .options({
      remUnit: 192,
      remPrecision: 8,
    })
    .end();
 },
  css: {
    loaderOptions: {
      postcss: {
        plugins: [postcss]
      },
    },
  },
}

注意
1、改完配置记得重新编译项目
2、如果个别地方不想转化px。可以简单的使用大写的PX或 Px。

  • 12
    点赞
  • 151
    收藏
    觉得还不错? 一键收藏
  • 28
    评论
postcss-plugin-px2rem是一个PostCSS插件,用于将CSS中的px单位转换为rem单位,以实现适配不同屏幕尺寸的效果。cli3指的是Vue.js的脚手架工具,用于构建Vue项目的基础结构。PC和手机端的配置指的是在使用cli3构建Vue项目时,如何配置postcss-plugin-px2rem插件来处理PC和手机端的样式适配。 首先,需要在package.json文件中添加postcss-plugin-px2rem插件的依赖。 然后,在项目的根目录下,创建一个postcss.config.js的文件,用于配置postcss-plugin-px2rem插件的选项。 配置文件的内容如下: ```js module.exports = { plugins: [ require('postcss-plugin-px2rem')({ remUnit: 75, // rem单位的基准值 exclude: /node_modules/i, // 排除node_modules目录下的文件 mediaQuery: false, // 是否转换@media查询中的px minPixelValue: 2 // 小于指定数值的px不转换为rem }) ] } ``` 在配置文件中,我们设置了remUnit的值为75。这意味着在设计稿中,1px将被转换为0.01333rem(1/75=0.01333)。 我们还设置了exclude选项,用于排除node_modules目录下的文件,因为通常我们不希望对第三方库的样式进行转换。 mediaQuery选项用于确定是否转换@media查询中的px单位。 minPixelValue选项用于确定小于指定数值的px单位是否转换为rem。 最后,在cli3的配置文件vue.config.js中,添加postcss插件的配置,如下: ```js module.exports = { css: { loaderOptions: { postcss: { config: { path: 'postcss.config.js' } } } } } ``` 以上配置将使postcss-plugin-px2rem插件在构建Vue项目时自动应用于CSS文件。 通过以上的配置,我们就可以在cli3构建的Vue项目中使用postcss-plugin-px2rem插件来实现PC和手机端的样式适配了。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 28
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值