【Vue】大漠vw移动端适配 与 vant 集成 导致 vant组件缩小如何解决?

问题描述

vw移动端适配方案与vant集成时会修改vant组件样式,讲vant的css中px转换为vw,导致组件缩小,效果如下图
,集成框架是参考了大漠大神的vw适配文章 https://www.w3cplus.com/mobil...
【Vue】大漠vw移动端适配 与 vant 集成 导致 vant组件缩小如何解决? 与 vant 官方文档 https://youzan.github.io/vant...

问题出现的环境背景及自己尝试过哪些方法

vant 提供的适配方案是 postcss-pxtorem,参考https://blog.csdn.net/perryli...
尝试配置了下 postcssrc.js ,无法解决问题 本项目是为了将小程序迁移至公众号, 迁移周期只有一个月,希望在迁移过程中直接将wxss 中 rpx 替换成 px 样式就可以不用再改动,这样才有可能按时完成,望各位大神指点,

相关代码

// 请把代码文本粘贴到下方(请勿用图片代替代码)
package.json中导入的包如下
"dependencies":{

    "ajv":"^6.10.0",

"axios":"^0.17.1",

"babel-polyfill":"^6.26.0",

"dayjs":"^1.6.7",

"fastclick":"^1.0.6",

"flex.css":"^1.1.7",

"fuse.js":"^3.2.1",

"jquery":"^3.3.1",

"js-cookie":"^2.2.0",

"lodash":"^4.17.11",

"lowdb":"^1.0.0",

"node-sass":"^4.11.0",

"nprogress":"^0.2.0",

"postcss-aspect-ratio-mini":"^1.0.1",

"postcss-cssnext":"^3.1.0",

"postcss-px-to-viewport":"^1.1.0",

"postcss-write-svg":"^3.0.1",

"sass-loader":"^7.1.0",

"ua-parser-js":"^0.7.19",

"vant":"^1.6.12",

"vue":"^2.5.2",

"vue-awesome-swiper":"^3.1.3",

"vue-router":"^3.0.1",

"vuex":"^3.0.1",

"vuex-persistedstate":"^2.5.4",

"weixin-js-sdk":"^1.4.0-test"

},

.postcssrc.js中的配置如下
module.exports = {

"plugins":{

"postcss-import":{},

"postcss-url":{},

"postcss-aspect-ratio-mini":{},

"postcss-write-svg":{

utf8:false

},

"postcss-cssnext":{},

"postcss-px-to-viewport":{

viewportWidth:750,

viewportHeight:1334,

unitPrecision:3,

viewportUnit:'vw',

selectorBlackList:['.ignore','.hairlines'], // (Array) The selectors to ignore and leave as px.

minPixelValue:1, // (Number) Set the minimum pixel value to replace.

mediaQuery:false // (Boolean) Allow px to be converted in media queries.

},

"cssnano":{

preset:"advanced",

autoprefixer:false,

"postcss-zindex":false

}

}

}

你期待的结果是什么?实际看到的错误信息又是什么?

希望通过配置 postcssrc.js 可以让导入vant的组件样式单位不进行转换,或者无法解决时直接可以更换成类似微信小程序的 框架进行,望推荐下框架

回答

使用 postcss-px2rem-exclude , 本质也是postcss,只是多了一个exclude配置,在postcss.config.js里配置

module.exports = {

"plugins": {

"autoprefixer": {},

"postcss-px2rem-exclude": {

remUnit: 75,

exclude: /node_modules|folder_name/i

}

}

}

单位转换的时候就会过滤掉node-modules里的第三方依赖包。

修改 .postcsssrc.js 中关于 postcss-px-to-viewport 的 selectorBlackList忽略转换的配置可解决问题, 配置如下

module.exports = {

"plugins":{

"postcss-import":{},

"postcss-url":{},

"postcss-aspect-ratio-mini":{},

"postcss-write-svg":{

utf8:false

},

"postcss-cssnext":{},

"postcss-px-to-viewport":{

viewportWidth:750,

viewportHeight:1334,

unitPrecision:3,

viewportUnit:'vw',

selectorBlackList:['.ignore','.hairlines','van'], // (Array) The selectors to ignore and leave as px.

minPixelValue:1, // (Number) Set the minimum pixel value to replace.

mediaQuery:false // (Boolean) Allow px to be converted in media queries.

},

"cssnano":{

preset:"advanced",

autoprefixer:false,

"postcss-zindex":false

}

}

}

【Vue】大漠vw移动端适配 与 vant 集成 导致 vant组件缩小如何解决?

修改配置:

"postcss-px-to-viewport":{

viewportWidth:375,

viewportHeight:664,

.....

},

兄弟,你出没出现 弹出层的overlay 闪一下抖动

大佬,你解决这个问题了吗?难道是只能用rem来做适配了

以上是 【Vue】大漠vw移动端适配 与 vant 集成 导致 vant组件缩小如何解决? 的全部内容, 来源链接: utcz.com/a/73930.html

回到顶部