vw 解決方案
1. 安裝并配置PostCss插件
 代碼如下:npm i postcss-aspect-ratio-mini postcss-px-to-viewport postcss-write-svg postcss-cssnext postcss-viewport-units cssnano --S
2. 對 PostCss 進行配置
找到在根目錄中的.postcssrc.js,對PostCSS插件進行配置
module.exports = { "plugins": {  "postcss-import": {},  "postcss-url": {},  // to edit target browsers: use "browserslist" field in package.json  "postcss-write-svg": {   uft8: false  },  "postcss-cssnext": {},  "postcss-px-to-viewport": {   viewportWidth: 750, // 視窗的寬度,對應的是我們設計稿的寬度,一般是750   viewportHeight: 1334, // 視窗的高度,根據750設備的寬度來指定,一般指定1334,也可以不配置   unitPrecision: 3, // 指定`px`轉換為視窗單位值的小數位數(很多時候無法整除)   viewportUnit: 'vw', // 指定需要轉換成的視窗單位,建議使用vw   selectorBlackList: ['.ignore', '.hairlines'], // 指定不轉換為視窗單位的類,可以自定義,可以無限添加,建議定義一至兩個通用的類名   minPixelValue: 1, // 小于或等于`1px`不轉換為視窗單位,你也可以設置為你想要的值   mediaQuery: false // 允許在媒體查詢中轉換`px`  },  "postcss-viewport-units": {},  "cssnano": {   preset: "advanced",   autoprefixer: false, // 和cssnext同樣具有autoprefixer,保留一個   "postcss-zindex": false  } }}3. 引入viewport-units-buggyfill解決兼容問題
在 index.html 中引入js
<script src="https://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>最近在做商城的項目,發現有贊的ui非常適合,但有一個問題是有贊的ui用的單位是px,做不了移動端的適配,官網的提供的vw適配方案發現不可行,最后還是決定rem來做適配,上網搜了一下,發現了一套可用方案,親測有效哦
它的原理是借助px2rem 插件方便的將px單位轉為了rem
具體步驟:
安裝
npm install px2rem-loader lib-flexible --save
在main.js中引入lib-flexible
import 'lib-flexible/flexible.js'
在build下的 utils.js中,找到generateLoaders 方法,添加以下代碼
const px2remLoader = {  loader: 'px2rem-loader',  options: {  remUnit: 37.5  }} function generateLoaders (loader, loaderOptions) {  const loaders = [cssLoader, px2remLoader]  if (loader) {    loaders.push({    loader: loader + '-loader',    options: Object.assign({}, loaderOptions, {    sourceMap: options.sourceMap    })  })}            
新聞熱點
疑難解答
圖片精選