web 前端vue前端修仙之路

移动端添加适配方案

2020-06-29  本文已影响0人  zaven

Flex 布局 + rem + flexible+sass

React

  1. 暴露webpack配置,即 react-scripts 包
npm run eject

⚠️ 在运行该命令的时候,要先将已经修改的文件提交到本地仓库中过,否则会报错!

  1. 安装项目项目需要的包 lib-flexiblepostcss-px2rempostcss-loader
npm install postcss-px2rem lib-flexible --save
npm install postcss-loader --dev
  1. 在项目的 public/index.html 入口文件添加
<meta name="viewport" content="width=device-width,inital-scale=1.0,
    maximum-scale=1.0,minimum-scale=1.0,user-scalable=no">
  1. 然后在项目入口文件 index.js 中引入 lib-flexible
import "lib-flexible" ;

5.接着,在项目config目录下的 webpack.config.js 中引入 postcss-px2rem

const px2rem = require("postcss-px2rem");
i配置文件.png
{
        loader: require.resolve("postcss-loader"),
        options: {
          /* 省略代码... */
          plugins: () => [
            require( postcss-flexbugs-fixes ),
            require( postcss-preset-env )({
              autoprefixer: {
                flexbox:  no-2009 ,
              },
              stage: 3,
            }),
            px2rem({remUnit: 75}), // 添加的内容
            /* 省略代码... */
          ],
          sourceMap: isEnvProduction && shouldUseSourceMap,
        },
      },
i配置.png

重新启动项目,发现里面的px单位都变成了rem

注意:使用 px2rem-loader 后再使用px上有些不同:
直接写 px ,编译后会直接转化成rem —— 除开下面两种情况,其他长度用这个
在 px 后面添加 /no/ ,不会转化 px,会原样输出。 —— 一般border需用这个
在 px 后面添加 /px/ ,会根据 dpr 的不同,生成三套代码。—— 一般字体需用这个,默认是@2x图 style

.App {
  .header {
    border: 10px solid #ddd; /*no*/
    color:#f00;
    font-size: 100px; /*px*/  
  }
}

Vue

vue项目配置px2rem

vue init webpack my-app
cd my-app
yarn add lib-flexible
yarn add px2rem-loader --dev
<meta name="viewport" content="width=device-width,inital-scale=1.0,
    maximum-scale=1.0,minimum-scale=1.0,user-scalable=no">
import "lib-flexible/flexible.js" ;
rule
    .use('px2rem-loader')
    .loader('px2rem-loader')
    .options({emUnit: 75})

适用情况 & 不适用情况

上一篇 下一篇

猜你喜欢

热点阅读