vue实现移动端适配方案

2023-11-04

vue实现移动端适配步骤如下:

先安装amfe-flexible和postcss-pxtorem:

npm install amfe-flexible --save
npm install postcss-pxtorem --save

在main.js导入amfe-flexible

import 'amfe-flexible';

配置postcss-pxtorem,可在vue.config.js、.postcssrc.js、postcss.config.js其中之一配置,权重从左到右降低,没有则新建文件,只需要设置其中一个即可:
在vue.config.js配置如下:

		module.exports = {
		    //...其他配置
		    css: {
		        loaderOptions: {
		            postcss: {
		                plugins: [
		                    require('postcss-pxtorem')({
		                        rootValue: 37.5,
		                        propList: ['*']
		                    })
		                ]
		            },
                    sass: {
                        // 配置scss文件全局变量,没有分号会报错
                        data: `@import "@ui/common.scss";` // 旧版sass-loader写法(8.0以下)
                        // prependData: `@import "@ui/common.scss";` // 新版scss-loader(8.0及以上)
                    }
		        }
		    },
		}

在.postcssrc.js或postcss.config.js中配置如下:

		module.exports = {
		    "plugins": {
		        'postcss-pxtorem': {
		            rootValue: 37.5,
		            propList: ['*']
		        }
		    }
		}
  • rootValue根据设计稿宽度除以10进行设置,这边假设设计稿为375,即rootValue设为37.5;
  • propList是设置需要转换的属性,这边*为所有都进行转换。

测试结果:

css中设置某类宽度为375px:

	.content{
	  width:375px;
	}

运行后在浏览器可以发现已经转化为10rem,即375/设置的rootValue:

在这里插入图片描述

 以上情况则说明postcss-pxtorem配置成功

html的字体大小跟随设备宽度进行改变,body跟随设备的dpr进行改变,这是amfe-flexible的实现,即说明配置成功。

说明,安装过程中可能会遇到以下报错:

1.安装配置后,发现rem并没有生效,解决办法:使用vue.config.js去配置,不要用postcss.config.js

2.抛错[object Object] is not a PostCSS plugin。报错原因:postcss-pxtorem版本太高,更改版本为5.1.1。npm install postcss-pxtorem@5.1.1

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

vue实现移动端适配方案 的相关文章

  • Three.js:缩放几何图形后错误的 BoundingBox

    在我的场景中 我有一个简单的立方体 var test new THREE Mesh new THREE CubeGeometry 10 10 10 new THREE MeshBasicMaterial scene add test 该立方
  • 如何格式化 Highcharts 的 (x,y) 对数据的日期时间

    我的序列化方法会产生如下所示的日期时间字符串 2014 07 09T12 30 41Z 为什么下面的代码不起作用 function container highcharts xAxis type datetime series data x
  • 在重复内容区域添加

    我有一个菜单组件 简单地说 它接受一个带有一系列选项的道具 并为每个选项在菜单中呈现一个项目 我希望能够根据用例自定义每个菜单项内的标记 因此我在菜单项元素内使用了占位符 你可以在这个中看到一个例子fiddle https jsfiddle
  • 使用 dc.js 按条形值对条形图中的条形进行排序(排序)

    如何通过维度的计算值而不是维度本身的名称对 dc js 示例中的 x 轴 维度 进行排序 例如 请考虑序数条形图的 dc js 示例 https github com dc js dc js blob master web examples
  • 在打字稿中导入 json

    我是 typescript 的新手 在我的项目中 我们使用 typescript2 在我的要求之一中 我需要导入 json 文件 所以我创建了 d ts 文件如下 test d ts declare module json const va
  • 隐藏 Div 的父级

    我只是想隐藏父divcomments section div class content content green div div div 我试过这个 document getElementById comments section pa
  • React-Redux:state.setIn() 和 state.set() 有什么区别?

    我见过使用setIn and set 在一些react redux代码中 state setIn state set 我在这里找到了一些文档https facebook github io immutable js https facebo
  • Chrome 扩展程序在代码中使用 client_secret

    我正在开发具有自己的 oAuth 授权的 Google Chrome 扩展 当然 我必须使用 client id 和 client secret 作为请求令牌 有什么办法可以向用户隐藏这些数据吗 由于此请求只是 javascript 源代码
  • Javascript split 不是一个函数

    嘿朋友们 我正在使用 javascript sdk 通过 jQuery facebook 多朋友选择器在用户朋友墙上发布信息 但是我收到此错误friendId split 不是函数 这是我的代码 function recommendToFr
  • 刷新页面时保存用户的选择

    我目前有一个页面显示不同团队的数据 我有一些数据 用户可以单击使其处于 打开 或 关闭 状态 并为每个数据显示不同的图标 它基本上就像一个清单 只是没有物理复选框 我想记住哪些 复选框 已被选中 即使在用户刷新页面或关闭浏览器并稍后返回之后
  • 有没有办法在 onclick 触发时禁用 iPad/iPhone 上的闪烁/闪烁?

    所以我有一个有 onclick 事件的区域 在常规浏览器上单击时 它不会显示任何视觉变化 但在 iPad iPhone 上单击时 它会闪烁 闪烁 有什么办法可以阻止它在 iPad iPhone 上执行此操作吗 这是一个与我正在做的类似的示例
  • 页面上使用 HTML Editor Extender 进行回发会导致 IE11 中出现 JavaScript 错误

    我已将 HTML 编辑器扩展程序添加到我正在处理的页面中 现在每当我在页面上发回帖子时 都会收到以下 Javascript 错误 JavaScript 运行时错误 参数无效 之后什么也没有发生 这在 IE10 或更低版本以及我所知道的所有其
  • 可以设置标题样式吗? (并且使用CSS或js?)[重复]

    这个问题在这里已经有答案了 我想知道是否可以设计一个title a href title This is a title Hello a 样式问题有两个方面 文本格式 编码 我猜这是可能的 所以在问题中这样做 工具提示样式 你能把它弄大一点
  • Javascript 假值(null、未定义、false、空字符串:“”或 '' 和 0)和比较(==)运算符 [重复]

    这个问题在这里已经有答案了 当我使用任何一个值时 null undefined false 0 in a if陈述 它总是被评估为谬误 false 另外 这些值的否定 null undefined false 0 in a if语句总是被评
  • 在移动设备上滚动

    这个问题更多的是一个建议研究 我确实希望它对其他人有帮助 并且它不会关闭 因为我不太确定在哪里寻求有关此事的建议 在过去的 6 个月里 我一直在进行移动开发 我有机会处理各种设备上的各种情况和错误 最麻烦的是滚动问题 当涉及到在网站的多个区
  • 在 Javascript 中连接空数组

    我正在浏览一些代码 我想知道这有什么用处 grid push concat row 根据我的理解 它等同于 grid push row 为什么要大惊小怪 连接 你想使用 concat当您需要展平数组并且没有由其他数组组成的数组时 例如 va
  • 用于交互式图形绘制的轻量级 JavaScript 库? [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 我有兴趣了解用于绘制交互式图表的最轻量级 javascript 库 我掌握的数据主要是与海洋研究相关的科学数据 我知道一些 jquery
  • Javascript Replace() 和 $1 问题

    我正在尝试创建一个脚本来搜索文本中的模式并在它找到的字符串周围包裹一个标签 shop attributes td each function this html function i html return html replace E 0
  • 如何确定所有角度2分量都已渲染?

    当所有 Angular2 组件完成渲染时 是否会触发一个角度事件 For jQuery 我们可以用 function 然而 对于 Angular2 当domready事件被触发 html 只包含角度组件标签 每个组件完成渲染后 domrea
  • 如何在执行新操作时取消先前操作的执行?

    我有一个动作创建器 它会进行昂贵的计算 并在每次用户输入内容时调度一个动作 基本上是实时更新 但是 如果用户输入多个内容 我不希望之前昂贵的计算完全运行 理想情况下 我希望能够取消执行先前的计算并只执行当前的计算 没有内置功能可以取消Pro

随机推荐

  • cmake 编译boost库遇到的坑

    错误 CMakeFiles main dir main cpp o In function boost asio detail posix event posix event usr local include boost asio det
  • ChatGPT将抢占谁的工作,未来如何应对

    AI人工智能领域里程碑式应用 ChatGPT影响力已经越来越大 激起大家强烈好奇心的同时 也让一些人发出了 感觉自己快要失业了 的焦虑 今天先说一下哪些人的工作会受到 ChatGPT等AI人工智能影响 从工业时代到数字时代这100多年的发展
  • LeetCode之最值问题系列问题求解

    最值系列题目求解 这类型题目的特点就是一个数组 或者字符串 给的条件是连续或者不连续 或者给定限定条件进行求解的情况 解题的关键 采用两个变量 一个变量记录前面的条件 或者最后一个不满足题意的index 或者最小值 比如股票题目当中j 或者
  • 【工具类】使用阿里oss实现图片、视频、文档上传

    使用阿里oss实现图片 视频 文档上传 一 背景描述 二 引入依赖 三 配置文件 四 接口实现 一 背景描述 功能是想实现图片 视频和文档的上传 项目技术栈 springboot 2 1 5 RELEASE 二 引入依赖
  • “火柴棒等式”【题解】

    火柴棒等式 的题目 题目 题目描述 给你n根火柴棍 你可以拼出多少个形如 A B C 的等式 等式中的A B C是用火柴棍拼出的整数 若该数非零 则最高位不能是0 用火柴棍拼数字0 9的拼法如图所示 注意 1 加号与等号各自需要两根火柴棍
  • 斐讯K1、K2、K2P 刷机、刷入Breed@重庆网吧电竞酒店维护小哥

    支持的版本 官方固件版本 K1 V22 4 XX XX K1S V22 3 XX XX K2 V22 2 XX XX V22 3 XX XX V22 4 XX XX V22 5 XX XX V22 6 XX XX K2P V22 8 5 1
  • Java反射之Method的invoke方法实现

    使用reflect 反射 包下面的Field和Method类获得类的属性和方法 并对属性和方法进行操作 在框架中经常会会用到method invoke 方法 用来执行某个的对象的目标方法 以前写代码用到反射时 总是获取先获取Method 然
  • NotImplementedError: Could not run ‘torchvision::nms‘ with arguments from the ‘CUDA‘ backend解决办法

    NotImplementedError Could not run torchvision nms with arguments from the CUDA backend This could be because the operato
  • [项目管理-22]:项目中开环、闭环、安全、监控四种沟通模型:UDP/TCP/SCTP/PID模型

    目录 前言 第1章 项目中闭环沟通模型 1 1 沟通模型 1 2 开环沟通 1 3 闭环沟通 1 4 闭环监控式沟通 第2章 TCP UDP SCTP通信模型在项目管理中的应用 2 1 UDP模式沟通 2 2 TCP模式沟通 2 3 SCT
  • GB28181智慧可视化指挥控制系统之执法记录仪设计探讨

    什么是智慧可视化指挥控制系统 智慧可视化指挥控制平台通过4G 5G网络 WIFI实时传输视音频数据至指挥中心 特别是在有突发情况时 可以指定一台执法仪为现场视频监控器 实时传输当前画面到指挥中心 指挥中心工作人员可通过麦克风向现场执法人员下
  • golang高精度十进制数扩展包decimal用法

    在Go语言中 没有内置的十进制数 decimal 类型或相关的标准库 然而 有一些第三方包可用于处理十进制数 其中比较常用的是decimal包 decimal包提供了一个big Float的子类型decimal Decimal 可以用于表示
  • 快捷指令url大全

    支付宝付款码 alipay platformapi startapp appId 20000056 支付宝健康码 alipays platformapi startapp appId 20000067 chInfo ch desktop u
  • 两个有序链表的合并(超详细)

    不知道大家有没有做过一道经典的题目 两个长度为15的有序链表的合并 大家先看题目 那么这道题该如何做尼 首先我们用比较笨的办法 用链表做 首先我们创建两个链表 那么该如何将两个链表合并尼 只需要创建两个指针 指向两个链表 然后比较两个链表中
  • Git的一些命令行

    1 创建一个分支git branch 分支名字 2 提交git commit 3 换主支git checkout 要换到的名字那儿 4合并git merge 分支名字 合并到当前那个支上 且那个支会指向两个父节点 5 git rebase取
  • 南溪的远程桌面软件使用笔记

    1 介绍 远程桌面软件可以让我们远程操作另一个主机的用户界面 Note TeamViewer付费一次后 就会强制自动续费一年 如果取消订阅需要提前续订日期前至少28天 28天的提前期实在太长了 TeamViewer这个公司十分黑心 以后注意
  • TensorFlow 2.0深度强化学习指南

    在本教程中 我将通过实施Advantage Actor Critic 演员 评论家 A2C 代理来解决经典的CartPole v0环境 通过深度强化学习 DRL 展示即将推出的TensorFlow2 0特性 虽然我们的目标是展示Tensor
  • 单链表的基本设计及实际操作

    单链表的基本设计 C语言代码实现 1 单链表概念 设计 单链表是一种链式存取的数据结构 链表中的数据是以结点来表示的 每个结点的构成 元素 数据元素的映象 指针 指示后继元素存储位置 元素就是存储数据的存储单元 指针就是连接每个结点的地址数
  • 如何安装Apache服务

    目录 什么是Apache 第一步 关闭防火墙和安全机制 第二步 系 统 上 定 义 SELinux 最 高 级 别 第三步 导入对应的依赖包并解包 第四步 安装依赖环境 第五步 移动相关文件 第六步 编译安装 第七步 编译 第八步 备份配置
  • git 提交代码到错误分支如何解决

    IDEA 中 当我们修改代码提交后 才发现提交到了错误的分支上 这时如何处理 切换到正确的分支 在刚刚的错误提交上 右键 gt 点击 cherry pick 择优选择 push 推送代码到仓库 注 cherry pick 时 可能提示 yo
  • vue实现移动端适配方案

    vue实现移动端适配步骤如下 先安装amfe flexible和postcss pxtorem npm install amfe flexible save npm install postcss pxtorem save 在main js