博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
手淘的移动端适配方案flexible
阅读量:6080 次
发布时间:2019-06-20

本文共 1521 字,大约阅读时间需要 5 分钟。

基于 vue-cli 配置手淘的 lib-flexible + rem,实现移动端自适应

  1. 安装 flexible

    npm install lib-flexible --save
  2. 引入 flexible

    在项目入口文件 main.js 中添加如下代码,引入 flexible

    import 'lib-flexible'
  3. px 转 rem

    使用 webpack 的 px2rem-loader, 自动将 px 转换为 rem

  4. 安装 px2rem-loader

    npm install px2rem-loader --save-dev
  5. 配置 px2rem-loader

    在 vue-cli 生成的文件中, 找到以下文件 build/utils.js, 如下添加配置

    const px2remLoader = {loader: 'px2rem-loader',options: {      remUnit: 75  // 1rem=多少像素 这里的设计稿是750px。    }}function generateLoaders(loader, loaderOptions) {    const loaders = options.usePostCSS ? [cssLoader, postcssLoader, px2remLoader] : [cssLoader, px2remLoader]    if (loader) {      loaders.push({        loader: loader + '-loader',        options: Object.assign({}, loaderOptions, {          sourceMap: options.sourceMap            })          })        }    }
  6. px2rem 用法

    安装 px2rem 后,再使用 px 上有些不同,下面简单介绍一下。

    直接写 px,编译后会直接转化成 rem ---- 除开下面两种情况,其他长度用这个
    在 px 后面添加/no/,不会转化 px,会原样输出。 --- 一般 border 需用这个
    在 px 后面添加/px/, 会根据 dpr 的不同,生成三套代码。---- 一般字体需用这个

    示例代码

    /** 编译前 **/.selector {    width: 150px;    height: 64px; /*px*/    font-size: 28px; /*px*/    border: 1px solid #ddd; /*no*/}/** 编译后(打包后的代码)**/.selector {    width: 2rem;    border: 1px solid #ddd;}[data-dpr="1"] .selector {    height: 32px;    font-size: 14px;}[data-dpr="2"] .selector {    height: 64px;    font-size: 28px;}[data-dpr="3"] .selector {    height: 96px;    font-size: 42px;}

    重启项目,就可以愉快的用设计稿上的 px 了。

    注意:
    不能在 index.html 的头部加 name 为 viewport 的 meta 标签,flexible 会自动为我们添加!

转载于:https://www.cnblogs.com/liuyishi/p/9573111.html

你可能感兴趣的文章
Telegraf+Influxdb+Grafana构建监控平台
查看>>
使用excel 展现数据库内容
查看>>
C#方法拓展
查看>>
MySql.Data.dll的版本
查看>>
Linux系统磁盘管理
查看>>
hdu 2191 (多重背包+二进制优化)
查看>>
home.php
查看>>
neo4j---删除关系和节点
查看>>
redis分布式锁redisson
查看>>
什么样的企业可以称之为初创企业?
查看>>
Python爬虫之BeautifulSoup
查看>>
《HTML 5与CSS 3权威指南(第3版·下册)》——第20章 使用选择器在页面中插入内容...
查看>>
如何判断自己适不适合做程序员?这几个特点了解一下
查看>>
newinstance()和new有什么区别
查看>>
android下载封装类
查看>>
[node] 用 node-webkit 开发桌面应用
查看>>
Nginx访问控制和虚拟主机
查看>>
report widget not working for external users
查看>>
windows phone 摄像头得到图片是旋转90°
查看>>
Linux--sed使用
查看>>