1. 程式人生 > 其它 >react專案引入posscss實現移動端適配,px轉換vw

react專案引入posscss實現移動端適配,px轉換vw

首先,安裝依賴:

  "autoprefixer": "^8.0.0",   "postcss-loader": "3.0.0",   "postcss-plugin-px2rem": "^0.8.1",   "postcss-px-to-viewport": "^1.1.1", 接下來修改配置,我看到有的作者是在專案根目錄下建立postcss.config.js,配置如下:   
module.exports = {
    plugins: [
      require('autoprefixer'),
      require('postcss-px-to-viewport')({
        unitToConvert: 
'px', viewportWidth: 750, unitPrecision: 5, propList: ['*'], viewportUnit: 'vw', fontViewportUnit: 'vw', selectorBlackList: [], minPixelValue: 1, mediaQuery: false, replace: true, exclude: undefined, include: undefined, }), ], remove:
false, }
但是我配置了之後並沒有效果,於是在webpack.config.js檔案中配置,在100行左右的位置找到getStyleLoaders,在下面新增如下配置:
{
        loader: require.resolve('postcss-loader'),
        options: {
          ident: 'postcss',
          plugins: () => [
            require('autoprefixer'),
            require('postcss-px-to-viewport') ({
              unitToConvert: 
'px', // 要轉化的單位 viewportWidth: 750, // UI設計稿的寬度 unitPrecision: 5, // 轉換後的精度,即小數點位數 propList: ['*'], // 指定轉換的css屬性的單位,*代表全部css屬性的單位都進行轉換 viewportUnit: 'vw', // 指定需要轉換成的視窗單位,預設vw fontViewportUnit: 'vw', // 指定字型需要轉換成的視窗單位,預設vw selectorBlackList: [], // 指定不轉換為視窗單位的類名, minPixelValue: 1, // 預設值1,小於或等於1px則不進行轉換 mediaQuery: false, // 是否在媒體查詢的css程式碼中也進行轉換,預設false replace: true, // 是否轉換後直接更換屬性值 exclude: undefined, // 設定忽略檔案,用正則做目錄名匹配 include: undefined, }) ], // sourceMap: isEnvProduction ? shouldUseSourceMap : isEnvDevelopment, }, },

最後檢視效果: -->程式碼:

.justifyFlex {
    width: 720px;
    margin: 20px auto 0;
    background: darkolivegreen;
    display: flex;
    align-items: stretch;
}

--> 瀏覽器展示: