1. 在项目根目录的postcss.config.js文件中增加配置项
postcss.config.js全部内容//https://github.com/michael-ciniawsky/postcss-load-config// module.exports = {// plugins: {// autoprefixer: {}// }// }module.exports = {"plugins": {"postcss-import": {},"postcss-url": {},"postcss-aspect-ratio-mini": {},"postcss-write-svg": {utf8: false},"postcss-cssnext": {},"postcss-px-to-viewport": {viewportWidth: 750, // 视窗的宽度,对应的是我们设计稿的宽度,一般是750viewportHeight: 1334, // 视窗的高度,根据750设备的宽度来指定,一般指定1334,也可以不配置unitPrecision: 3, // 指定`px`转换为视窗单位值的小数位数(很多时候无法整除)viewportUnit: 'vw', // 指定需要转换成的视窗单位,建议使用vwselectorBlackList: ['.ignore', '.hairlines'], // 指定不转换为视窗单位的类,可以自定义,可以无限添加,建议定义一至两个通用的类名minPixelValue: 1, // 小于或等于`1px`不转换为视窗单位,你也可以设置为你想要的值mediaQuery: false // 允许在媒体查询中转换`px`},"postcss-viewport-units":{},"cssnano": {preset: "advanced",autoprefixer: false,"postcss-zindex": false},}}
2. 使用
npm下载相关包yarn add cssnano postcss-aspect-ratio-mini postcss-cssnext postcss-px-to-viewport postcss-viewport-units postcss-write-svgyarn add cssnano-preset-advancedyarn add postcss-import postcss-url autoprefixer
3. 在
public/index.html引入js插件并使用该插件<!DOCTYPE html><html><head><meta charset="utf-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width,initial-scale=1.0"><link rel="icon" href="<%= BASE_URL %>favicon.ico"><title>vuecli3vw</title></head><body><noscript><strong>We're sorry but vuecli3vw doesn't work properly without JavaScript enabled. Please enable it to continue.</strong></noscript><div id="app"></div><!-- built files will be auto injected -->//引入下面这段<script src="//g.alicdn.com/fdilab/lib3rd/viewport-units-buggyfill/0.6.2/??viewport-units-buggyfill.hacks.min.js,viewport-units-buggyfill.min.js"></script><script>window.onload = function () {window.viewportUnitsBuggyfill.init({hacks: window.viewportUnitsBuggyfillHacks});}</script></body></html>
4. 在
App.vue组件中尝试使用vw布局<template><div id="app"><div class='box'>使用 vw 布局</div><div id="nav"><router-link to="/">Home</router-link> |<router-link to="/about">About</router-link></div><router-view/></div></template><style>html,body{margin: 0;padding: 0;}.box{width: 750px; //测试是否转换为vmheight: 1000px;background-color: #ccc;color: darkred;font-size: 40px;}#app {font-family: 'Avenir', Helvetica, Arial, sans-serif;-webkit-font-smoothing: antialiased;-moz-osx-font-smoothing: grayscale;text-align: center;color: #2c3e50;}</style>
5. 运行项目,验证是否成功
npm run serve //yarn serve
查看
.box的css px是否成功转为vw- 如果成功转为
vw,恭喜你成功啦!Project setup
npm install
Compiles and hot-reloads for development
npm run serve
Compiles and minifies for production
npm run build
