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 对联广告、漂浮广告封装类(IE,FF,Opera,Safari,Chrome
Nov 26 Javascript
jQuery学习7 操作JavaScript对象和集合的函数
Feb 07 Javascript
hover的用法及live的用法介绍(鼠标悬停效果)
Mar 29 Javascript
yepnope.js使用详解及示例分享
Jun 23 Javascript
jquery实现网页定位导航
Aug 23 Javascript
html、css和jquery相结合实现简单的进度条效果实例代码
Oct 24 Javascript
Node.js 数据加密传输浅析
Nov 16 Javascript
JavaScript cookie详解及简单实例应用
Dec 31 Javascript
JS实现上传图片实时预览功能
May 22 Javascript
Vue.js中关于侦听器(watch)的高级用法示例
May 02 Javascript
iview同时验证多个表单问题总结
Sep 29 Javascript
JS事件循环机制event loop宏任务微任务原理解析
Aug 04 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 小乘法表实现代码
2009/07/16 PHP
解析PHP多种序列化与反序列化的方法
2013/06/06 PHP
php实现根据身份证获取精准年龄
2020/02/26 PHP
一个JS翻页效果
2007/07/23 Javascript
JavaScript 题型问答有答案参考
2010/02/17 Javascript
jQuery中DOM操作实例分析
2015/01/23 Javascript
基于JavaScript实现移动端TAB触屏切换效果
2015/10/20 Javascript
javascript实现下拉提示选择框
2015/12/29 Javascript
javascript运动效果实例总结(放大缩小、滑动淡入、滚动)
2016/01/08 Javascript
Angularjs过滤器使用详解
2016/05/25 Javascript
js手动播放图片实现图片轮播效果
2016/09/17 Javascript
火狐和ie下获取javascript 获取event的方法(推荐)
2016/11/26 Javascript
Jquery Easyui进度条组件Progress使用详解(8)
2020/03/26 Javascript
angularJS深拷贝详解
2017/03/23 Javascript
Web前端框架Angular4.0.0 正式版发布
2017/03/28 Javascript
vue-cli 3.0 自定义vue.config.js文件,多页构建的方法
2018/09/19 Javascript
js变量值传到php过程详解 将php解析成数据
2019/06/26 Javascript
jQuery zTree插件使用简单教程
2019/08/16 jQuery
Javascript原生ajax请求代码实例
2020/02/20 Javascript
微信小程序学习总结(三)条件、模板、文件引用实例分析
2020/06/04 Javascript
python模拟登录百度贴吧(百度贴吧登录)实例
2013/12/18 Python
python字典get()方法用法分析
2015/04/17 Python
在Python中使用sort()方法进行排序的简单教程
2015/05/21 Python
python正则表达式及使用正则表达式的例子
2018/01/22 Python
NLTK 3.2.4 环境搭建教程
2018/09/19 Python
Mac在python3环境下安装virtualwrapper遇到的问题及解决方法
2019/07/09 Python
keras 读取多标签图像数据方式
2020/06/12 Python
python与idea的集成的实现
2020/11/20 Python
python实现企业微信定时发送文本消息的示例代码
2020/11/24 Python
贝佳斯官方网站:Borghese
2020/05/08 全球购物
StringBuilder和String的区别
2015/05/18 面试题
保险公司早会主持词
2014/03/22 职场文书
销售业务员岗位职责
2015/02/13 职场文书
召开会议通知范文
2015/04/15 职场文书
超外差式晶体管收音机的组装与统调
2021/04/22 无线电
vue实现简易音乐播放器
2022/08/14 Vue.js