【PC+移动】尺寸自适应方案

第一种🔎: postcss-pxtorem + lib-flexible

安装: npm i -s postcss-pxtorem lib-flexible
使用方法:
  1. 在根目录下创建postcss.config.js
// const px2rem = require('postcss-pxtorem');
// module.exports = {
//   plugins: [px2rem({   //根元素字体大小
//     rootValue: 192, // 设计稿宽度或者目前正常分辨率的1/ 10
//     //匹配CSS中的属性,* 代表启用所有属性
//     propList: ['*'],
//     //转换成rem后保留的小数点位数
//     unitPrecision: 5,
//     //小于12px的样式不被替换成rem
//     minPixelValue: 12,
//     //selectorBlackList: ['.qz-'],// 要忽略的选择器并保留为px。
//     //忽略一些文件,不进行转换,比如我想忽略 依赖的UI框架
//     exclude: ['node_modules']
//   })]
// };

2.找打lib-flexible的源码,并更改尺寸
在这里插入图片描述3. main.js 引入

import '../node_modules/lib-flexible/flexible'

4.重启项目即可

第二种🔎: postcss-px-to-viewport

安装: npm i postcss-px-to-viewport
使用方法: 在根目录下创建postcss.config.js
module.exports = {
  plugins: {
    'postcss-px-to-viewport': {
      unitToConvert: 'px', // 需要转换的单位,默认为"px"
      viewportWidth: 1920, // 设计稿的视口宽度
      unitPrecision: 5, // 单位转换后保留的精度
      propList: ['*'], // 能转化为vw的属性列表
      viewportUnit: 'vw', // 希望使用的视口单位
      fontViewportUnit: 'vw', // 字体使用的视口单位
      selectorBlackList: [], // 需要忽略的CSS选择器,不会转为视口单位,使用原有的px等单位。
      minPixelValue: 1, // 设置最小的转换数值,如果为1的话,只有大于1的值会被转换
      mediaQuery: false, // 媒体查询里的单位是否需要转换单位
      replace: true, //  是否直接更换属性值,而不添加备用属性
      exclude: undefined, // 忽略某些文件夹下的文件或特定文件,例如 'node_modules' 下的文件
      include: undefined, // 如果设置了include,那将只有匹配到的文件才会被转换
      landscape: false, // 是否添加根据 landscapeWidth 生成的媒体查询条件 @media (orientation: landscape)
      landscapeUnit: 'vw', // 横屏时使用的单位
      landscapeWidth: 1920 // 横屏时使用的视口宽度
    }
  }
}
注意事项:

postcss-px-to-viewport 对内联,外联,内嵌样式都有效,但是对js动态css无效,所以要使用静态的class定义变化样式,通过js改变dom元素的class实现样式变化。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值