我认为,适配的目的是:写一份样式,保证可以在不同DPR的移动端设备上都能友好的展示。更形象一点的例子:假设写css单位是some-unit,简称SU,一个div宽度width设为100SU,希望达到的效果是,用尺子丈量,在不同设备width占据屏幕宽的百分比是一样的。

DPR(设备像素比)=物理(或设备)像素/ CSS像素  ——公式(1)

注意:一个CSS像素对应多少个物理像素是根据当前的缩放比例来决定(1css像素 = 缩放比例*dpr个设备像素)

上面等式成立的前提是缩放比例=1,即html中设置<mata "name=viewport" content="width=device-width,init-scale=1,min-scale=1,max-scale=1">

满足上述条件下,对于DPR为n的任一设备,1个css像素=n个物理像素。其中css像素,就是我们在css中书写的px(或浏览器Element状态栏查看元素时大小时看到的px,后面均用px代替),物理像素就是设备显示屏上最小、最原子的单位(后面均用PHYSICS_PX代替)。

下面以Iphone6和Iphone6s作为参考,简单介绍下,怎么实现适配:

Iphone6    dpi=2   逻辑分辨率 :375(css像素)*667    设备分辨率:750*1334

Iphone6s  dpi=3   逻辑分辨率 : 414(css像素)*736    设备分辨率:1242*2208

(1) 设置min-scale=1/DPR,目的是使得1px=1PHYSICS_PX。

则默认情况下,设备显示屏水平包含的css像素数量=设备分辨率,即:

Iphone6  屏幕宽   750px

Iphone6s  屏幕宽  1242px

(2) 使用REM作为度量单位

设屏幕宽为20REM(可以根据喜好设置,不固定的,基准可以自己定义的),即width=20REM就是满屏的宽度。

Iphone6 要满足 20REM= 750px ,计算得1REM= 37.5px,为此设备的基准度量单位

Iphone6s 要满足20REM=1242px,计算得1REM = 41.2px,为此设备的基准度量单位

(3)只需要设置标签html的font-size为对应的1REM基准值即可

其他设备也按上述方式计算得到基准度值,这样1REM等于屏幕宽度的1/20。到时候根据任一设计稿尺寸,以750*1334为例,在css中换算成REM即可。

比如 37.5px——>  1rem     14px——> 0.37333rem

(4) 前端构建优化

我们自己写css,每次都需要将px换算成rem,会比较麻烦你,前端构建时,可以采用一些构建工具,webpack中比较常用的px2rem-loader(基于SCSS工程),会把px主动换算成rem,因此我们在写css时,只需要按px写即可。看一下具体的方法实现:

@function px2rem($px){
$rem : 37.5px;
@return ($px/$rem) + rem;
}

其中37.5px就来自于(2)中得到的设备相关的基准度量单位与px的换算值。






转载于:https://juejin.im/post/5d42afb9e51d4562043f5686

移动端适配的理解——REM方案相关推荐

  1. 移动端适配+flexible.js+rem适配

    移动端适配 前沿: 移动端web页面的开发,由于手机屏幕尺寸.分辨率不同,或者需要考虑横竖屏问题,为了使得web页面在不同移动设备上具有相适应的展示效果,需要在开发过程中使用合理的适配方案来解决这个问 ...

  2. 移动端适配:font-size设置方案的理解(浏览器调试移动端网页工具使用)

    进过前面几篇相关的知识学习,使用rem布局是主流选择,而使用rem最核心的确定html根节点里面的font-size大小,即根永远是 1rem=?px为换算单位, 有一种处理办法,是在css里面,通过 ...

  3. 移动端适配的理解和各种方案解析(详解)

    -

  4. 临时抱佛脚版_移动端适配布局_flex+rem+响应式

    移动端的常见布局方案 文章目录 移动端的常见布局方案 一. 移动端和PC端的区别?   2. 手机屏幕的现状   2.1 视口   2.2 布局视口 layout viewport   2.2视觉视口 ...

  5. vue的pc端适配vw vh rem

    安装命令: npm i postcss-px-to-viewport@1.1.1npm i postcss-pxtorem@5.1.1 2.安装完之后在根目录新建postcss.config.js(和 ...

  6. vue3+vant移动端适配 px转换rem

    Vant 中的样式默认使用 px 作为单位,如果需要使用 rem 单位,推荐使用以下两个工具: postcss-pxtorem 是一款 postcss 插件,用于将 px 单位转化为 rem lib- ...

  7. 移动端适配方案(rem和vw vh适配)(css预处理器-less)

    适配方案: 目前移动端适配方案有两种: 1.flex+rem单位 当前市面上用的比较多 相对主流(比如小米和淘宝移动端) 2.flex+viewport width/viewport height(v ...

  8. css3vw适配_小tips:使用rem+vw实现简单的移动端适配

    首先设置meta属性,如下代码: 使用如下代码就能实现移动端的适配: html { font-size: -webkit-calc(13.33333333vw); font-size: calc(13 ...

  9. 我对移动端适配的了解

    不知不觉做前端已经两年了,从PC端,移动端,微信小程序一路走来到今天刚刚开放注册的快应用(手机厂商对抗小程序的新技能,所以在注册时用的是qq邮箱的话要去垃圾箱里才能找到注册邮件),对于前端圈日新月异的 ...

  10. 一文搞定移动端适配!

    作者 | 好学习吧丶 责编 | 郭芮 手机市场日渐丰富的同时,给我们前端开发人员带来的 "网页内容自适应屏幕尺寸进行显示的问题" 也日渐凸显出来,接下来我们就要细说移动端适配的前世 ...

最新文章

  1. 超简单的网页选项卡---jQuery
  2. 让TP5.0在SWOOLE上飞起来
  3. Boost:标准地图比较的测试程序
  4. 高仿真 JDK Proxy手写实现
  5. HttpsURLConnection 利用keepAlive特性进行优化一例
  6. 巴斯勒相机外部触发接线_2021新疆欧姆龙相机回收童嫂无欺
  7. linux编辑音频文件,Linux 上的最佳音频编辑工具推荐
  8. Windows系统卸载MySQL
  9. 小学生计算机应用教学ppt,小学计算机课件ppt
  10. yml文件和properties文件区别
  11. Can‘t update dev_zgd has no tracked branch
  12. iso计算机术语简单解释,计算机网络知识(上)
  13. 考研常考知识点(复试)
  14. 淘宝详情页设计要点有哪些 优秀淘宝详情页面多少屏合适
  15. 智能暖风机——7.LED驱动和断电记忆功能
  16. simplest_ffmpeg_decoder_pure.c
  17. 第11届蓝桥杯本科组校赛
  18. 升级 MacOS 到最新版本 macOS Ventura 13.0 后,Parallels Desktop 不可用
  19. python读json文件json.decoder.JSONDecodeError终极解决大法
  20. latex里图片大小如何调整_怎样用latex修改插入图形的大小,使图形大小一致。...

热门文章

  1. [C#]用Forms.TreeView显示Icon会有黑边
  2. hdu 4318 Power transmission 临接表 广搜 多校联合赛(二) 第九题
  3. 如何在 Mac 上的“通知中心”中添加和自定小组件?
  4. iOS黑魔法-Method Swizzling
  5. PS滤镜插件工具箱Mac版:Nik Collection 4
  6. springboot结合mybatis连接数据库
  7. 数据分析为何能指导商业决策?
  8. c#之new关键词——隐藏基类方法
  9. 新型恶意软件—— Grizzly攻击Telegram
  10. PHP Socket 深度探索 (一)