首页 > 其他分享 >移动端适配方案

移动端适配方案

时间:2024-07-17 15:20:37浏览次数:12  
标签:方案 dpr 适配 px vw window 宽度 rem 移动

移动端适配方案

1、媒体查询

媒体查询的使用还能节省开发时间和成本,因为开发人员只需编写一次代码,就可以适应多种设备。同时,它还可以根据设备的特性选择最适合的图片、字体和其他资源,从而减少页面加载时间,提高网站的性能。响应式设计是一种现代网页设计方法,它可以使网页在不同的设备和屏幕大小上呈现出合适的布局和样式。总之,媒体查询对于现代网页开发来说至关重要。它提供了一种简单而有效的方式来创建自适应布局,提高用户体验,并使网页设计更加灵活和现代化。

2、flexible 方案(动态 rem 方案)

动态rem适配方案的流程:

  • meta 标签设置 viewport 宽度为屏幕宽度;
  • 根据不同屏幕修改根元素 font-size 大小,一般设置为屏幕宽度的十分之一(可引入 lib-flexible 库,或者自己写相应逻辑);
  • 开发环境配置 postcss-px2rem 或者类似插件;
  • 根据设计稿写样式,元素宽高直接取设计稿宽高即可,单位为 px,插件会将其转换为 rem;
  • 段落文本也按照设计稿写,单位为px,不需要转换为 rem;

lib-flexible 其核心代码如下:

(function flexible (window, document) {
  var docEl = document.documentElement
  
 	// 根据屏幕宽度设置根元素字体大小,set 1rem = viewWidth / 10
  function setRemUnit () {
    var rem = docEl.clientWidth / 10
    docEl.style.fontSize = rem + 'px'
  }

  setRemUnit()

  // reset rem unit on page resize
  window.addEventListener('resize', setRemUnit)
  window.addEventListener('pageshow', function (e) {
    if (e.persisted) {
      setRemUnit()
    }
  })
}(window, document))

 

if (!dpr && !scale) {
    var isAndroid = win.navigator.appVersion.match(/android/gi);
    var isIPhone = win.navigator.appVersion.match(/iphone/gi);
    var devicePixelRatio = win.devicePixelRatio;
    if (isIPhone) {
        // iOS下,对于2和3的屏,用2倍的方案,其余的用1倍方案
        if (devicePixelRatio >= 3 && (!dpr || dpr >= 3)) {                
            dpr = 3;
        } else if (devicePixelRatio >= 2 && (!dpr || dpr >= 2)){
            dpr = 2;
        } else {
            dpr = 1;
        }
    } else {
        // 其他设备下,仍旧使用1倍的方案
        dpr = 1;
    }
    scale = 1 / dpr;
}

  

3、Viewport 方案

即将视觉视口宽度 window.innerWidth 和视觉视口高度 window.innerHeight 等分为 100 份。1vw 等于视口宽度的1%

vw 适配方案的流程:

  1. meta 标签设置 viewport 宽度为屏幕宽度;
  2. 开发环境配置 postcss-px-to-viewport 或者类似插件;
  3. 根据设计稿写样式,元素宽高直接取设计稿宽高即可,单位为 px,插件会将其转换为 vw;
  4. 段落文本也按照设计稿写,单位为px,不需要转换为 vw;

当然,没有一种方案是十全十美的,vw同样有一定的缺陷:

  • px转换成vw不一定能完全整除,因此有一定的像素差。
  • 比如当容器使用vwmargin采用px时,很容易造成整体宽度超过100vw,从而影响布局效果。当然我们也是可以避免的,例如使用padding代替margin,结合calc()函数使用等等...
 

标签:方案,dpr,适配,px,vw,window,宽度,rem,移动
From: https://www.cnblogs.com/alisadream/p/18307413

相关文章

  • 坐标移动、密码验证合格程序 题目
    题目HJ17坐标移动描述输入描述:输出描述:示例:分析:代码:大佬代码:HJ20密码验证合格程序描述输入描述:输出描述:示例:分析:代码:大佬代码:HJ17坐标移动描述开发一个坐标计算工具,A表示向左移动,D表示向右移动,W表示向上移动,S表示向下移动。从(0,0)点开始移动,从输入字符串......
  • 好用的开源移动端低代码平台有哪些
    移动APP、H5、小程序曾风靡一时,结合当前无代码/低代码开发技术,有哪些免费开源的移动端H5/小程序软件,不用写代码即可发布H5页面,笔者对市场上主流的开源H5低代码/无代码工具/框架/组件进行了研究和验证,找到了几款比较好用的移动端H5无代码/低代码设计器,供大家选型参考。1、h5-doori......
  • 移动端适配的基础概念
    一、英寸一般用英寸描述屏幕的物理大小。如苹果SE4英寸,苹果XS6.5英寸,电脑显示器的22英寸上面的尺寸都是屏幕对角线长度。英寸和厘米的换算:1英寸=2.54厘米二、分辨率2.1像素像素即一个方块,具有特定的位置和颜色。像素可以作为图片和电子屏幕最小组成单元 通常我们所......
  • 一种防勒索备份方案设计;易备,数据安全备份的强大工具
    创建防勒索软件备份方案企业遭遇勒索袭击时面对的最艰难处境是勒索软件在攻击期间设法加密或彻底销毁了备份文件。勒索软件组织希望受害者难以从备份中恢复数据,因此他们会竭尽全力寻找备份文件,并通过任何方式让备份文件变得不可用。安全部门通常给出的建议确保有“离线存储......
  • 移动硬盘提示未格式化维修数据恢复
    当移动硬盘提示未格式化时,通常意味着操作系统无法正确识别或访问硬盘上的文件系统。这可能是由于多种原因引起的,包括文件系统损坏、硬盘物理损坏、分区表错误等。一、原因分析文件系统损坏:文件系统是硬盘上组织和存储数据的关键结构,如果受到病毒攻击、非法操作或系统崩溃等因素......
  • 移动硬盘不显示盘符分区丢失
    一、检查连接确保连接良好:首先,检查移动硬盘与电脑之间的USB连接线是否插紧,没有松动或损坏。可以尝试将移动硬盘连接到不同的USB端口或使用另一根USB线,以排除连接问题。二、分配盘符打开磁盘管理工具:按下Win+R组合键,输入“diskmgmt.msc”打开磁盘管理工具。分配盘符:在磁盘管理......
  • 日立爱国者移动硬盘数据恢复
    一、检查硬盘状态物理检查:首先,检查硬盘是否有物理损坏,如外壳破裂、接口松动等。如果硬盘有物理损坏,需要数据恢复。连接检查:确保硬盘已正确连接到电脑,并且电脑能够识别硬盘。如果电脑无法识别硬盘,可能需要更换数据线或尝试在其他电脑上连接。二、尝试基础恢复方法回收站恢复:如......
  • 关于三星SSD移动硬盘的维修与数据恢复
    通常涉及多个方面,包括故障诊断、硬件维修以及数据恢复等。一、故障诊断检查连接:确保SSD移动硬盘与计算机的连接是稳定的,检查数据线是否损坏或接触不良。尝试更换不同的USB端口或电脑进行测试,以排除USB接口问题。电源检查:确认移动硬盘的电源供应是否正常,特别是对于需要外接电......
  • 移动硬盘删除格式化后还能恢复出来吗
    移动硬盘删除格式化后,在一定条件下,数据是有可能恢复出来的。一、数据恢复的可能性格式化方式:格式化分为快速格式化和完全格式化。快速格式化只是删除文件系统的索引,数据本身并未被完全清除,因此恢复的可能性较大。而完全格式化则会尝试清除硬盘上的所有数据,恢复难度相对较大。新......
  • Android Studio下载Gradle超时解决方案
    本文由ChatMoney团队出品AndroidStudio找到项目中gradle配置文件的路径,我的路径为/你的项目路径/gradle/wrapper/gradle-wrapper.properties,里面对应内容应该如下所示:#TueJun1116:15:13CST2024distributionBase=GRADLE_USER_HOMEdistributionPath=wrapper/distsdi......