Vue CLI3移动端适配(px2rem或postcss-plugin-px2rem)


Posted in Javascript onApril 27, 2020

今天,我们使用Vue CLI3 做一个移动端适配 。

Vue CLI3移动端适配(px2rem或postcss-plugin-px2rem) 

前言

首先确定你的项目是Vue CLI3版本以上的。

一、移动端适配包

1、安装移动端适配包

npm i lib-flexible -S

2、在 main.js 引入适配包

import Vue from 'vue'
import App from './App.vue'

import 'lib-flexible' // 引入适配包

Vue.config.productionTip = false

new Vue({
 render: h => h(App),
}).$mount('#app')

3、在 index.html 编辑 viewport

<!DOCTYPE html>
<html lang="en">
 <head>
 <meta charset="utf-8">
 <meta http-equiv="X-UA-Compatible" content="IE=edge">
 <!-- 加上以下代码 -->
 <meta name="viewport" content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0"> 
 <link rel="icon" href="<%= BASE_URL %>favicon.ico" rel="external nofollow" >
 <title><%= htmlWebpackPlugin.options.title %></title>
 </head>
 <body>
 <noscript>
  <strong>We're sorry but <%= htmlWebpackPlugin.options.title %> doesn't work properly without JavaScript enabled. Please enable it to continue.</strong>
 </noscript>
 <div id="app"></div>
 <!-- built files will be auto injected -->
 </body>
</html>

二、CSS样式适配

1、安装 px2rem-loader 包( 只适用于css样式

npm i px2rem-loader -D

2、在 vue.config.js 配置

module.exports={
	 chainWebpack: config => {
  config.module
  .rule('css')
   .test(/\.css$/)
   .oneOf('vue')
   .resourceQuery(/\?vue/)
   .use('px2rem')
   .loader('px2rem-loader')
   .options({
    remUnit: 75
   })
 },
}

三、CSS预处理语言样式适配

1、安装 postcss-plugin-px2rem适用于css预处理语言

npm i postcss-plugin-px2rem -D

2、在 vue.config.js 配置

module.exports={
	 css: {
  loaderOptions: {
  postcss: {
   plugins: [
    require('postcss-plugin-px2rem')({
     rootValue: 75, //换算基数, 默认100 ,这样的话把根标签的字体规定为1rem为50px,这样就可以从设计稿上量出多少个px直接在代码中写多上px了。
     // unitPrecision: 5, //允许REM单位增长到的十进制数字。
     //propWhiteList: [], //默认值是一个空数组,这意味着禁用白名单并启用所有属性。
     // propBlackList: [], //黑名单
     exclude: /(node_module)/, //默认false,可以(reg)利用正则表达式排除某些文件夹的方法,例如/(node_module)\/如果想把前端UI框架内的px也转换成rem,请把此属性设为默认值
     // selectorBlackList: [], //要忽略并保留为px的选择器
     // ignoreIdentifier: false, //(boolean/string)忽略单个属性的方法,启用ignoreidentifier后,replace将自动设置为true。
     // replace: true, // (布尔值)替换包含REM的规则,而不是添加回退。
     mediaQuery: false, //(布尔值)允许在媒体查询中转换px。
     minPixelValue: 3 //设置要替换的最小像素值(3px会被转rem)。 默认 0
    }),
   ]
  }
 }
 }
}

3、在 package.json 配置,加入 postcss 相关插件

{
 "name": "app",
 "version": "0.1.0",
 "private": true,
 "scripts": {
 "serve": "vue-cli-service serve",
 "build": "vue-cli-service build",
 "lint": "vue-cli-service lint"
 },
 "dependencies": {
 "core-js": "^3.6.4",
 "lib-flexible": "^0.3.2",
 "vue": "^2.6.11"
 },
 "devDependencies": {
 "@vue/cli-plugin-babel": "~4.3.0",
 "@vue/cli-plugin-eslint": "~4.3.0",
 "@vue/cli-service": "~4.3.0",
 "babel-eslint": "^10.1.0",
 "eslint": "^6.7.2",
 "eslint-plugin-vue": "^6.2.2",
 "node-sass": "^4.14.0",
 "postcss-plugin-px2rem": "^0.8.1",
 "px2rem-loader": "^0.1.9",
 "sass-loader": "^8.0.2",
 "vue-template-compiler": "^2.6.11"
 },
 "postcss": {
 "plugins": {
  "autoprefixer": {},
  "precss": {}
 }
 }
}

结语

到此这篇关于Vue CLI3移动端适配(px2rem或postcss-plugin-px2rem)的文章就介绍到这了,更多相关Vue CLI3移动端适配内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Javascript 相关文章推荐
可以支持多中格式的JS键盘
May 02 Javascript
javascript URL编码和解码使用说明
Apr 12 Javascript
原生Js与jquery的多组处理, 仅展开一个区块的折叠效果
Jan 09 Javascript
JavaScript面向对象程序设计三 原型模式(上)
Dec 21 Javascript
Flex通过JS获取客户端IP和计算机名的实例代码
Nov 21 Javascript
Bootstrap中表单控件状态(验证状态)
Aug 04 Javascript
通过BootStrap实现轮播图的实际应用
Sep 26 Javascript
Bootstrap在线电子商务网站实战项目5
Oct 14 Javascript
Angular表格神器ui-grid应用详解
Sep 29 Javascript
JS使用new操作符创建对象的方法分析
May 30 Javascript
微信小程序如何调用json数据接口并解析
Jun 29 Javascript
使用zrender.js绘制体温单效果
Oct 31 Javascript
js HTML DOM EventListener功能与用法实例分析
Apr 27 #Javascript
JS严格模式原理与用法实例分析
Apr 27 #Javascript
详解使用mocha对webpack打包的项目进行&quot;冒烟测试&quot;的大致流程
Apr 27 #Javascript
详解elementUI中input框无法输入的问题
Apr 27 #Javascript
基于jsbarcode 生成条形码并将生成的条码保存至本地+源码
Apr 27 #Javascript
Node.js API详解之 tty功能与用法实例分析
Apr 27 #Javascript
React.js组件实现拖拽排序组件功能过程解析
Apr 27 #Javascript
You might like
PHP通用检测函数集合
2011/02/08 PHP
基于GD2图形库的PHP生成图片缩略图类代码分享
2015/02/08 PHP
CI操作cookie的方法分析(基于helper类库)
2016/03/28 PHP
laravel框架中路由设置,路由参数和路由命名实例分析
2019/11/23 PHP
合并table相同单元格的jquery插件分享(很精简)
2011/06/20 Javascript
用原生js做个简单的滑动效果的回到顶部
2014/10/15 Javascript
Jquery Easyui进度条组件Progress使用详解(8)
2020/03/26 Javascript
基于canvas的二维码邀请函生成插件
2017/02/14 Javascript
微信小程序 开发之全局配置
2017/05/05 Javascript
详解如何提高 webpack 构建 Vue 项目的速度
2017/07/03 Javascript
浅谈js闭包理解
2019/03/28 Javascript
VUE安装使用教程详解
2019/06/03 Javascript
微信小程序接入腾讯云验证码的方法步骤
2020/01/07 Javascript
深入解读VUE中的异步渲染的实现
2020/06/19 Javascript
javascript+css实现俄罗斯方块小游戏
2020/06/28 Javascript
JavaScript实现点击出现子菜单效果
2021/02/08 Javascript
Python文件操作,open读写文件,追加文本内容实例
2016/12/14 Python
SVM基本概念及Python实现代码
2017/12/27 Python
pandas apply 函数 实现多进程的示例讲解
2018/04/20 Python
Python设计模式之工厂方法模式实例详解
2019/01/18 Python
Python 使用type来定义类的实现
2019/11/19 Python
Django多进程滚动日志问题解决方案
2019/12/17 Python
详解pandas中iloc, loc和ix的区别和联系
2020/03/09 Python
python 利用openpyxl读取Excel表格中指定的行或列教程
2021/02/06 Python
CSS3中各种颜色属性的使用教程
2016/05/17 HTML / CSS
韩国休闲女装品牌网站:ANAIS
2016/08/24 全球购物
加拿大当代时尚服饰、配饰和鞋类专业零售商和制造商:LE CHÂTEAU
2017/10/06 全球购物
PAUL HEWITT手表美国站:德国北部时尚生活配饰品牌,船锚元素
2017/11/18 全球购物
Wedgwood美国官网:英国骨瓷,精美礼品及家居装饰
2018/02/17 全球购物
解释下面关于J2EE的名词
2013/11/15 面试题
中学教师实习自我鉴定
2013/09/28 职场文书
校长先进事迹材料
2014/02/01 职场文书
三个儿子教学反思
2014/02/03 职场文书
会计系毕业生求职信
2014/05/28 职场文书
2015年社区流动人口工作总结
2015/05/12 职场文书
2016年共产党员个人承诺书
2016/03/24 职场文书