Vue+H5如何适配各个移动端?

前言

我们都知道,在做移动端的项目的时候,我们最首先的是要指定适配各种机型的方案,让一套代码能够在不同分辨率的机型下顺应自如。想知道移动端适配原理的小伙伴可以先移步看看这篇文章:解决移动端适配方法总结,相信你看完之后将会有很多收货!然后这篇文章主要是讲讲在实际运用上,且也是我在项目中使用的一种适配方案,感兴趣的小伙伴继续看下去吧~

ps:若本文有写错或者遗漏的地方还望大家能够底下评论或者私信我,我们一起交流~

说明

假设你已经完成了项目的创建,然后需要安装两个插件,分别是postcss-pxtorem 和 lib-flexible。在这个安装的过程中需要注意一点是,直接npm i postcss-pxtorem时,会报错‘Error: PostCSS plugin postcss-pxtorem requires PostCSS 8.’,原因是postcss-pxtorem版本过高,PostCSS不支持,此时我们需要降低版本即可,我在项目中用到的版本是@5.1.1

说明:postccss-pxtorem是一个postCSS插件,可以将CSS中的像素单位px转成rem单位,为了在Vue项目中使用post-pxtorem插件,,可以按照以下步骤进行配置

安装|@后面可以加指定版本

npm install postcss-pxtorem@5.1.1 -d
npm install lib-flexible --save

 以下是我项目下载的依赖。说明一下,这里除了postcss-pxtorem,另外几个可以不进行下载。其他的均是对postcss-pxtorem的插件的一个扩展,

 

 

在项目根目录下创建一个.postcssrc.js文件,用于配置PostCSS插件

 上述配置中,rootValue为根元素字体大小。这里设置为37.5,表示将设计稿按照宽度375px进行切图转换成rem单位时1rem=37.5px;propList为要转换的属性列表,这里设置为*,表示所有属性都要进行转换

引入适配文件lib-flexible.js

这个步骤一定要加上,否则不能实现px-->rem的转换:在入口文件main.js中引入lib-flexible.js

// 移动端适配
import 'lib-flexible/flexible.js'

lib-flexible.js文件的作用:lib-flexible会自动在html的head中添加一个meta name=“viewport” 的标签,同时会自动设置html的font-size为屏幕宽度除以10,也就是1rem等于html根节点的font-size。加入设计稿的宽度为750px,此时的1rem应该等于75p。假如量的某个元素的宽度是150px,那么在css里面定义这个元素的宽度就是width:2rem

修改cue.config.js文件,配置postcss-loader

 上述配置,通过loaderOptions将postcss的配置传递给了postcss-loader,config的path属性指向了postcss配置文件的路径。

编写css样式

在vue组件中使用px单位进行样式编写,插件会将其转成rem单位

<style lang="scss" scoped>
.container {
  width: 375px; // 设计稿宽度
  margin: 0 auto;
  padding: 20px;
  background-color: #fff;
  font-size: 16px; // 根元素字体大小
  .box {
    width: 100px;
    height: 100px;
    background-color: #f00;
    margin: 20px;
    padding: 20px;
    font-size: 16px;
  }
}
</style>

上述样式中,width、margin、padding好font-size等属性使用px当为进行编写,在编译时会自动转成rem单位。例如,width:375px将会被转成width:10rem;因为在上面我们配置的是1rem=37.5px。

需要注意的是,在使用postcss-pxtorem插件时,不应该对字体使用人单位,因为字体大小不应该相对根元素进行缩放。因此,应该将字体代销使用px单位进行编写。

以上便是我对Vue项目中H5项目的移动适配方案分享的全部内容啦~下次再见~

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.kler.cn/a/7396.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

netty 实现websocket 携带参数建立连接

Netty提供了很好的WebSocket支持&#xff0c;可以通过添加WebSocketServerProtocolHandler实现暴露一个WebSocket接口。但是&#xff0c;如果需要在WebSocket的URI中添加参数queryString&#xff0c;例如/im/ws?w221100234&t99&#xff0c;则连接可能无法建立&#xff0c;…

VSCode卸载、重装配置、常用快捷键

VSCode彻底卸载 彻底卸载VSCode 控制面板卸载VSCode.删除安装插件 winR输入%userprofile%&#xff0c;删除当前路径下的.vscode文件夹。删除用户信息和缓存信息 winR输入%appdata%&#xff0c;删除当前路径下的Code和Visual Studio Code文件夹。 VSCode重装插件配置 Chinese&…

【ChatGPT 】国内无需注册 openai 即可访问 ChatGPT:ChatGPT Sidebar 浏览器扩展程序的安装与使用

一、前言 问题&#xff1a;国内注册 openai 账号麻烦&#xff0c;新必应有部分人也无法登录成功&#xff0c;存在域名单点登录失败等问题&#xff0c;所以无法真正使用 ChatGPT 解决&#xff1a;大部分人仅需使用 ChatGPT 的搜索功能&#xff0c;无需真正对话&#xff0c;需要…

【软件设计师10】软件工程

软件工程 1. 瀑布模型SDLC - 结构化 优点&#xff1a;结构化方法模型&#xff0c;每个阶段分工明确&#xff1b;出现问题可以向上层回溯 缺点&#xff1a;需求阶段难以把控&#xff0c;在项目初期&#xff0c;软件的需求几乎是不明确的&#xff0c;等开发完用户往往再提出问…

SpringSecurity实战解析

文章目录一、Security认证和原理1、认证基本流程1.1 表单认证概述1.2 基本流程分析1.3 权限访问流程2、请求间共享认证信息2.1 概述2.2 获取认证用户信息3、认证的几种方式4、注解权限4.1 概述4.2 Secured注解使用方式4.3 jsr250Enabled4.4 prePostEnabled 规范(重要)5、自定义…

为什么系统的Swap变高了?

我们知道当发生了内存泄漏时&#xff0c;或者运行了大内存的应用程序&#xff0c;导致系统的内存资源紧张时&#xff0c;系统又会如何应对呢&#xff1f;我们知道&#xff0c;这其实会导致两种可能结果&#xff0c;内存回收和 OOM 杀死进程。 我们先来看后一个可能结果&#x…

吴恩达机器学习--逻辑回归

文章目录前言一、普通二分类逻辑回归需求分析程序设计1. 导入数据2. 可视化数据3. 划分数据4. sigmoid函数5. 假设函数6. 损失函数7. 梯度下降算法8. 可视化模型9. 模型准确率10. 试试sklearn库11. sklearn的准确率12. 完整程序二、 复杂二分类逻辑回归需求分析程序设计1. 逻辑…

面向对象编程(基础)5:类的成员之二:方法(method)

目录 5.1 方法的引入 5.2 方法(method、函数)的理解 举例1&#xff1a; 举例2&#xff1a; 5.3 如何声明方法 1、声明方法的语法格式 &#xff08;1&#xff09;一个完整的方法 方法头 方法体。 &#xff08;2&#xff09;方法头可能包含5个部分 &#xff08;3&…

前后端交互系列之跨域问题

目录前言1. 同源策略及跨域2. 跨域解决方案之JSONP3. 设置CORS响应头实现跨域后记前言 我们在做前后端交互的时候&#xff0c;会遇到跨域问题。本节内容将带领读者了解什么是跨域问题&#xff0c;以及跨域问题的解决方法。 1. 同源策略及跨域 我们所了解的Ajax默认是基于同源…

centos7离线安装docker

前言 在没有互联网的情况下想要安装某些软件用docker是十分方便的一种方式&#xff0c;例如oracle。原生的oracle安装是非常麻烦的&#xff0c;本人亲眼目睹一个专门搞oracle的公司的人安装oracle三天没有成功&#xff01;因此不得不学习在没有互联网的情况下使用docker来安装…

vue3之shallowRef以及使用对element-plus table的优化尝试

首先&#xff0c;先大概回顾一下相关概念吧 ref、shallowRef ref 接受一个内部值&#xff0c;返回一个响应式的、可更改的 ref 对象&#xff0c;此对象只有一个指向其内部值的属性 .value。 如果将一个对象赋值给 ref&#xff0c;那么这个对象将通过 reactive 转为具有深层次…

【vscode】检查到已经改正的错误,没有错误却检查到有错误

一、问题背景 下面这个名为test1.c的C代码&#xff0c;在vscode中用扩展code runner工具通过【run code】方式执行时&#xff0c; 出现了诸如’xxx’ does not name a type、‘xxx’ expected unqualified-id before ‘for’、i’does not name a type等错误。 于是本人把所…

[GXYCTF2019]BabyUpload

思路&#xff1a;先测试是否对文件名后缀检测 1,上传一个php文件 上传内容&#xff1a; GIF89a <?php eval($_POST["cmd"]);?>失败&#xff1a; 2&#xff0c;尝试上传其它类型的文件 构造%00截断的.jpg结尾尝试上传&#xff1a; 再次被拦截&#xff1a; …

摸鱼也可以效率翻倍:Python 统计 gitlab 代码量,定量统计发给领导

嗨害大家好鸭&#xff01;我是爱摸鱼的芝士❤ 一、确定需求 需求是公司大领导想要了解每周研发提交的代码量。 因为研发人员比较多&#xff0c; 想着用 python 做个自动化&#xff0c; 定时统计代码量并发送邮件给领导。 二、统计gitlab代码 首先安装第三方库python-gitlab&…

Hadoop基础介绍

Hadoop基础介绍一、总体介绍二、HDFS架构三、MapReduce结构四、YARN架构一、总体介绍 1、定义&#xff1a; 是一个开源的、可靠的、可扩展的分布式计算框架。 2、用途&#xff1a; &#xff08;1&#xff09;数据仓库 &#xff08;2&#xff09;PB级别数据的存储与处理。 3…

JetpackCompose从入门到实战学习笔记13——Compose中实现简单瀑布流

JetpackCompose从入门到实战学习笔记13——Compose中实现简单瀑布流 文章目录JetpackCompose从入门到实战学习笔记13——Compose中实现简单瀑布流1.简介&#xff1a;2.竖向的StaggeredGrid参数&#xff1a;3.简单使用如下&#xff1a;4.竖向瀑布流效果如下&#xff1a;5.横向的…

基于html+css的内容旋转

准备项目 项目开发工具 Visual Studio Code 1.44.2 版本: 1.44.2 提交: ff915844119ce9485abfe8aa9076ec76b5300ddd 日期: 2020-04-16T16:36:23.138Z Electron: 7.1.11 Chrome: 78.0.3904.130 Node.js: 12.8.1 V8: 7.8.279.23-electron.0 OS: Windows_NT x64 10.0.19044 项目…

Solon v2.2.7 发布,支持 Java 20

Solon 是一个高效的 Java 应用开发框架&#xff1a;更快、更小、更简单。也是一个有自己接口标准规范的开放生态。 150来个生态插件&#xff0c;覆盖各种不同的应用开发场景&#xff1a; 相对于 Spring Boot 和 Spring Cloud 的项目&#xff1a; 启动快 5 &#xff5e; 10 倍…

MLSkin 5.3 for delphi Crack

MLSkin 是Delphi下面的一款皮肤组件&#xff0c;是基于Delphi标准组件继承而来&#xff0c;扩展了很多实用的属性功能供开发者调用&#xff1b;在使用上和标准的VCL组件相差不大&#xff0c;但显示风格却大不一样&#xff0c;可以很轻松地实现像QQ皮肤那样的效果&#xff0c;想…

镜头光学指标介绍----清晰度SFR

目录 简介 常用单位 lp/mm&#xff08;line-pairs/mm&#xff09; Cycle / pixel LW/PH&#xff08;line widths/ picture height) 转换关系 MTF MTF概念 MTF50&#xff0c;MTF50P SFR的计算方法 参考资料&#xff1a; 简介 在镜头选型或者对比中&…
最新文章