1.安装lib-flexible
终端执行命令:npm i lib-flexible --save
2在main.js引入lib-flexible
import 'lib-flexible/flexible'
3.安装postcss-pxtorem 注意(需要指定版本)不指定版本会报Error: PostCSS plugin postcss-pxtorem requires PostCSS 8.错原因是版本过高, 5.1.1版本可正常使用。
终端执行npm install postcss-pxtorem@5.1.1
4.配置postcss-pxtorem
在根目录的.postcssrc.js文件中修改,此文件自动生成,如果没有,手动创建
文件内容, 直接复制使用,
module.exports = {
plugins: {
// 兼容浏览器,添加前缀
autoprefixer: {
overrideBrowserslist: [
"Android 4.1",
"iOS 7.1",
"Chrome > 31",
"ff > 31",
"ie >= 8",
"last 10 versions", // 所有主流浏览器最近10版本用
],
grid: true,
},
"postcss-pxtorem": {
rootValue: 37.5, //结果为:设计稿元素尺寸/16,比如元素宽320px,最终页面会换算成 20rem
propList: ["*"], //是一个存储哪些将被转换的属性列表,这里设置为['*']全部,假设需要仅对边框进行设置,可以写['*', '!border*']
unitPrecision: 5, //保留rem小数点多少位
//selectorBlackList: ['.radius'], //则是一个对css选择器进行过滤的数组,比如你设置为['fs'],那例如fs-xl类名,里面有关px的样式将不被转换,这里也支持正则写法。
replace: true, //这个真不知到干嘛用的。有知道的告诉我一下
mediaQuery: false, //媒体查询( @media screen 之类的)中不生效
minPixelValue: 8, //px小于12的不会被转换
},
},
};
5.针对ipad 和 ipad pro 设备无效,针对这些设备网上找到了方法,如下
// 在index.html中添加如下代码
<script>
/(pad|pod|iPad|iPod|iOS)/i.test(navigator.userAgent)&&(head=document.getElementsByTagName('head'),viewport=document.createElement('meta'),viewport.name='viewport',viewport.content='target-densitydpi=device-dpi, width=480px, user-scalable=no',head.length>0&&head[head.length-1].appendChild(viewport));
</script>