基于 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 会自动为我们添加!

本文版权归作者和博客园共有,欢迎转载。但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文链接,否则保留追究法律责任的权利!

作者:刘呵呵

QQ:352887191

出处:http://www.cnblogs.com/liuyishi/

不难懂------适配移动端flexible的更多相关文章

  1. 使用viewport中的vm来适配移动端页面

    前言 作为一个小前端,经常要和H5打交道,这就面临着不同终端的适配问题. Flexible方案通过Hack手段来根据设备的dpr值相应改变<meta>标签中viewport的值,给我更贴切 ...

  2. Vue将px转化为rem适配移动端

    Vue将px转化为rem适配移动端 1.下载lib-flexible我使用的是vue-cli+webpack,所以是通过npm来安装的npm i lib-flexible --save 2.引入lib ...

  3. 九、响应式发:rem和less(适配移动端)

    一.响应式开发 响应式开发优先适配移动端又兼容到pc端 官网:https://less.bootcss.com/usage/ 教程:https://www.w3cschool.cn/less/ rem ...

  4. 让 jQuery UI draggable 适配移动端

    背景: 在移动端,本人要实现对某个元素的拖动,想到使用 jQuery UI 的 draggable 功能.但是发现此插件的拖动只支持PC端,不支持移动端. 原因: 原始的 jQuery UI 里,都是 ...

  5. bootstrap适配移动端

    上次在pythonanywhere上挂上去的页面,是这个样子的 而在手机上看是这个样子的 总之简直不能看= = 看了一下学校几个微信公众号的页面.都是用的bootstrap,好吧我也去试试看好了. 在 ...

  6. React.js 入门与实战之开发适配PC端及移动端新闻头条平台课程上线了

    原文发表于我的技术博客 我在慕课网的「React.js 入门与实战之开发适配PC端及移动端新闻头条平台」课程已经上线了,文章中是目前整个课程的大纲,以后此课程还会保持持续更新,此大纲文档也会保持更新, ...

  7. 从0到1构建适配不同端(微信小程序、H5、React-Native 等)的taro + dva应用

    从0到1构建适配不同端(微信小程序.H5.React-Native 等)的taro + dva应用 写在前面 Taro 是一套遵循 React 语法规范的 多端开发 解决方案.现如今市面上端的形态多种 ...

  8. 本周汇总 动态rem适配移动端/块状元素居中/透明度

    1.动态rem适配移动端 !function(){ var width = document.documentElement.clientWidth; var head=document.getEle ...

  9. h5移动端flexible源码适配终端解读以及常用sass函数

    ;(function(win, lib) { var doc = win.document;// win = window,lib = window.lib; var docEl = doc.docu ...

随机推荐

  1. MySQL查找数据中相同的数据,并进行删除

    查找表中多余的重复记录,重复记录是根据某个字段来判断 select * from 表名 where 字段 in (select 字段 from 表名 group by 字段 having count( ...

  2. 【LeetCode】1134. Armstrong Number 解题报告(C++)

    作者: 负雪明烛 id: fuxuemingzhu 个人博客:http://fuxuemingzhu.cn/ 目录 题目描述 题目大意 解题方法 直接计算 日期 题目地址:https://leetco ...

  3. F. Geometrical Progression

    http://codeforces.com/problemset/problem/758/F F. Geometrical Progression time limit per test 4 seco ...

  4. 使用 JavaScript 的 HTML 页面混合、JavaScript 文件引用和 HTML 代码嵌入 3 种方式在 HTML 页面上打印出“点击我进入到百度首页”的超链接

    查看本章节 查看作业目录 需求说明: 使用 JavaScript 的 HTML 页面混合.JavaScript 文件引用和 HTML 代码嵌入 3 种方式在 HTML 页面上打印出"点击我进 ...

  5. STM32零基础入门教程

    本文主要是针对想了解STM32,手里又没有太多预算的小伙伴.市场上针对新手来说,比较合适的STM32开发版太贵,比如正点原子.树莓派等,便宜的教程又不详细,这对想白嫖的小伙伴来说不太有好,所以我选了一 ...

  6. vsconde launch.json配置 调试本地文件

    { // Use IntelliSense to learn about possible attributes. // Hover to view descriptions of existing ...

  7. CF786C Till I Collapse

    题目分析 首先,对于这道题,可以用贪心以一个\(O(n)\)的复杂度求解一个\(k\)的值 暴力是\(O(n^2)\)的复杂度,当然过不了. 我们手推一下样例,会发现,答案满足单调性,于是,果断想到二 ...

  8. 使用uiautomatorviewer,查看app页面元素,进行元素定位

    环境搭建: 安装adt,安装成功后,就可以在adt路径下的tools文件夹中找到uiautomatorviewer.bat 用来做什么? uiautomatorviewer.bat是用来扫描和分析An ...

  9. git 生成忽略文件

    一.在.git的同级目录下打开git bash 二.在命令行输入 三.在生成的文件中添加忽略提交的文件夹名称 来自为知笔记(Wiz)

  10. nuxt2.0项目创建(最新)

     使用import需要babel编译写法如下 //修改1打开package.json文件 "dev": "cross-env NODE_ENV=development n ...