h5移动端像素适配 postcss-pxtorem和amfe-flexible
Vant 中的样式默认使用px作为单位,如果需要使用rem单位,推荐使用以下两个工具:
postcss-pxtorem 是一款 postcss 插件,用于将单位转化为 rem;
amfe-flexible 用于设置 rem 基准值
1==> 去下载amfe-flexible 和postcss-pxtorem
"dependencies": {
"amfe-flexible": "^2.2.1",
"core-js": "^3.6.5",
"postcss-pxtorem": "^5.1.1",
"vant": "^2.12.9",
"vue": "^2.6.11",
"vue-router": "^3.2.0"
},
安装postcss-pxtorem和amfe-flexible的时候,要注意版本,
否者可能会出现如下Error: PostCSS plugin tailwindcss requires PostCSS 8
这个因为版本出问题了,下载之后,重新下载
npm install postcss-pxtorem -D
npm install amfe-flexible -S
-D 是 --save-dev 的简写
–save-dev || -D //开发依赖(辅助)
--save || -S // 运行依赖(发布)
2==>通过meta标签,设置设备宽度以及缩放比例
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, minimum-scale=1, user-scalable=no">
3==> 创建文件 .postcssrc.js文件,在根目录中
module.exports = {
plugins: {
'autoprefixer': {
browsers: ['Android >= 4.0', 'iOS >= 7']
},
'postcss-pxtorem': {
rootValue: 37.5, //vant-UI的官方根字体大小是37.5
propList: ['*']
}
}
}
温馨提示: rootValue这个配置项的数值是多少呢???
通常我们是根据设计图来定这个值,原因很简单,便于开发。
假如设计图给的宽度是750,我们通常就会把rootValue设置为75,
这样我们写样式时,可以直接按照设计图标注的宽高来1:1还原开发。
(iPhone界面尺寸:320 * 480、640 * 960、640 * 1136、750 * 1334、1080 * 1920等。)
那为什么你在这里写成了37.5呢???之所以设为37.5,
是为了引用像vant、mint-ui这样的第三方UI框架,
因为第三方框架没有兼容rem,用的是px单位,
将rootValue的值设置为设计图宽度(这里为750px)75的一半,
即可以1:1还原vant、mint-ui的组件,否则会样式会有变化,例如按钮会变小。
既然设置成了37.5 那么我们必须在写样式时,也将值改为设计图的一半。
如果你用的是摹客,可以切换开发平台,变成自定义,单位转换1px=2px;
参考:https://www.jianshu.com/p/220a186cc033
4==>在main.js中去引入
import 'amfe-flexible/index.js'
我们可以看见在h5端上
我们可以看见在pc端上
h5移动端像素适配 postcss-pxtorem和amfe-flexible的更多相关文章
- H5移动端rem适配
/** * 移动端自适应 */ <meta name="viewport" content="width=device-width,user-scalable=no ...
- h5移动端屏幕适配
1.rem <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF ...
- 使用Flexible实现手淘H5页面的终端适配【转】
曾几何时为了兼容IE低版本浏览器而头痛,以为到Mobile时代可以跟这些麻烦说拜拜.可没想到到了移动时代,为了处理各终端的适配而乱了手脚.对于混迹各社区的偶,时常发现大家拿手机淘宝的H5页面做讨论—— ...
- 使用Flexible实现手淘H5页面的终端适配(转)
曾几何时为了兼容IE低版本浏览器而头痛,以为到Mobile时代可以跟这些麻烦说拜拜.可没想到到了移动时代,为了处理各终端的适配而乱了手脚.对于混迹各社区的偶,时常发现大家拿手机淘宝的H5页面做讨论—— ...
- (转)使用Flexible实现手淘H5页面的终端适配
原文链接 曾几何时为了兼容IE低版本浏览器而头痛,以为到Mobile时代可以跟这些麻烦说拜拜.可没想到到了移动时代,为了处理各终端的适配而乱了手脚.对于混迹各社区的偶,时常发现大家拿手机淘宝的H5页面 ...
- [转]使用Flexible实现手淘H5页面的终端适配
曾几何时为了兼容IE低版本浏览器而头痛,以为到Mobile时代可以跟这些麻烦说拜拜.可没想到到了移动时代,为了处理各终端的适配而乱了手脚.对于混迹各社区的偶,时常发现大家拿手机淘宝的H5页面做讨论—— ...
- 超详细讲解H5移动端适配
前言 移动互联网发展至今,各种移动设备应运而生,但它们的物理分辨率可以说是五花八门,一般情况UI会为我们提供375尺寸的设计稿,所以为了让H5页面能够在这些不同的设备上尽量表现的一致,前端工程师就不得 ...
- 整理h5移动端适配方案
<使用Flexible实现手淘H5页面的终端适配>:https://github.com/amfe/article/issues/17 <再聊移动端页面的适配>:https:/ ...
- H5 端 rem 适配方案与 viewport 适配
H5 端 rem 适配方案与 viewport 适配 rem rem 是 CSS3 新增的一个相对单位(root em,根 em) 只根据当前页面 HTML 页面的 font-size 设置,如果根目 ...
- H5移动端适配方案-rem
为什么移动端要适配: 由于移动设备的尺寸不一,所以移动端的页面要能够适应不同尺寸的设备,即页面的自适应,让页面在视觉上保持一致. rem:rem 是css3的一种相对单位,参考是根元素HMTL的fon ...
随机推荐
- WebLogic T3反序列化漏洞
目录 前言 T3协议概述 T3反序列漏洞分析 漏洞复现 修复措施 前言 WebLogic的反序列化漏洞是一个经典的漏洞系列,原因就在于WebLogic在通信过程中使用T3协议传输数据,涉及到了序列化和 ...
- OpenResty之resty.limit.count 模块介绍
resty.limit.count 模块介绍: resty.limit.count 模块就是限制接口单位时间的请求数,This module depends on lua-resty-core模块,所 ...
- 从PipedInputStream/PipedOutputStream谈起
本篇主要从分析PipeInputStrem和PipedOutputStream谈起.谈及软件设计的变化,以及如何将软件拆分.组合,适配-- 1 源代码分析 下面将详细分析PipedInputStrea ...
- Python:pygame游戏编程之旅六(游戏中的声音处理)
一款人性化的游戏中缺少不了声音,比如角色挂时惨叫一声,或PK时武器交锋的声音,还有就是英雄出场时的背景音乐,无不涉及到声音,本节我们就来看一下pygame中如何控制声音,下面是一个例子,但博客上传不了 ...
- 在vue中使用XLSX导出表格
安装依赖 npm install file-saver xlsx -S 然后在需要的页面中引入依赖包 import FileSaver from 'file-saver'; import XLSX f ...
- python之常用开发包
1.passlib (https://passlib.readthedocs.io/en/stable/) passlib 目前常见的不可逆加密算法有以下几种: 一次MD5(使用率很高) 将密码与一个 ...
- Django之gunicorn部署
安装: pip install gunicorn 启动应用: gunicorn -w 3 -k gthread -e DJANGO_SETTINGS_MODULE=settings.prod Serv ...
- vue3笔记
如何创建vue3项目 基于 vue 脚手架 npm i @vue/cli -g vue create <project-name> cd <project-name> npm ...
- 从英库(Engkoo)输入法吐槽
今天整理文件的时候发现在 OneDrive 的根目录还有一个 EngkooPinyin 的文件夹,看配置文件更新已经是 2014 年 3 月了.当时微软出这个输入法的时候,感觉非常好用,然后满怀热情给 ...
- 如何调整Gitlab-Runner最大并发数?
概述: 我们在使用gitlab-runner做cicd时,如果安装之后没有配置gitlab-runner的最大并发数,在使用时候可能会碰到job的警告(job日志超过字节限制):job's log e ...