一、新建 rem.js 文件,代码如下:

export default function () {
document.documentElement.style.fontSize = document.documentElement.clientWidth / 10 + 'px' // 禁止双击放大
document.documentElement.addEventListener('touchstart', function (event) {
if (event.touches.length > 1) {
event.preventDefault()
}
}, false)
var lastTouchEnd = 0
document.documentElement.addEventListener('touchend', function (event) {
var now = Date.now()
if (now - lastTouchEnd <= 300) {
event.preventDefault()
}
lastTouchEnd = now
}, false)
}

二、在 main.js 中引用上述 rem.js 文件,使得 html 的 fontsize 始终为设备宽度的 1/10:

import remConfig from './common/rem'

remConfig() // 配置rem
window.addEventListener('resize', function () {
remConfig()
})

三、安装 px2rem-loader:

npm i px2rem-loader

四、配置 utils.js 文件,在 exports.cssLoaders = function (options) {} 里面添加下列代码:

const px2remLoader = {
loader: 'px2rem-loader',
options: {
remUnit: 75 // 设计稿宽度750px
}
}

找到 generateLoaders 函数,奖函数中下列代码:

const loaders = options.usePostCSS ? [cssLoader, postcssLoader] : [cssLoader]

改为:

const loaders = options.usePostCSS ? [cssLoader, postcssLoader, px2remLoader] : [cssLoader, px2remLoader]

/* 或者改为 */

// const loaders = [cssLoader, px2remLoader]

五、配置完后重新 npm run dev,webpack就会自动将 css 中的 px 转换为 rem,如果 css 中的某些 px 不想被转换为 rem 可以在后面加上 /* no*/,如下(分号不能省略):

border: 1px solid #ccc; /* no*/
fontsize: 16px; /* no*/

但调用的外部 css 文件中的 px 不会被转换,内联样式中的 px 也不会被转换。

最新文章

  1. SE16N使用方案总结
  2. java 之return
  3. MSXML应用总结
  4. nginx php-fpm安装配置
  5. 删除MSSQL数据库中所有表
  6. [转]Oracle数据库中的约束
  7. (01)odoo8.0_Ubuntu14.04源码安装
  8. linux下expect使用教程
  9. iOS 视频播放的简单使用
  10. Masonry布局框架的使用
  11. String Byte 互转
  12. vue-countTo---简单好用的一个数字滚动插件
  13. NoSQL入门
  14. go goroutine
  15. Python入门介绍
  16. 关于烦躁的网页编码问题utf-8,gb2312。终于自己实践了一遍
  17. hdu 4915 括号匹配+巧模拟
  18. [转]csv文件导入Mysql
  19. javascript中json对象长度
  20. 配置HDFS HttpFS和WebHDFS

热门文章

  1. [android] 手机卫士号码归属地查询完成
  2. linux 安装mysql8.0
  3. JVM 堆内存和非堆内存
  4. Codeforces445B(SummerTrainingDay06-N 并查集)
  5. MySQL常用操作汇编
  6. JS--我发现,原来你是这样的JS(三)(基础概念--灵魂篇)
  7. SQL SERVER 将表字段值0和1互转的几种方法
  8. 微信小程序&lt; 1 &gt; ~ Hello 微信小程序
  9. Hive Serde - CSV、TSV
  10. CSS 小结笔记之伸缩布局 (flex)