移动端自适应解决方案

爱吃鱼摆摆 爱吃鱼摆摆     2022-08-13     246

关键词:

web移动端常用解决方案:

一、通过js+rem,这里有一个解决方案(http://imochen.github.io/hotcss/)

1.1、rem兼容性(https://caniuse.com)

ios:6.1系统以上

android:2.1系统以上

1.2、什么是rem的

rem其实就是根据网页的根元素来设置字体大小,和em(font size of the element)的区别是,em是根据其父元素的字体大小来设置。现在大部分浏览器默认font-size:16px。如果一个p标签想要设置font-size为12px,用rem作单位则变成了font-size:0.75rem(12/16=0.75)。根据这个原理,将rem运用到布局,则可以实现不同分辨率的适配。

1.3、rem基准值计算

实际开发中,我们不可能将默认font-size大小作为基准值,这个基准值应该是是根据ui设计稿获取的。如果ui以iphone6(375px)的分辨率为设计基准,设计图的分辨率就为750px(dpr为2),那么我们可以以375/10=37.5为基准(也可以不除已10,这里只是为了不让font-size值太大)。

1.4、动态计算font-size的值

方法一、利用css媒体查询

@media (min-device-width : 375px) and (max-device-width : 667px) and (-webkit-min-device-pixel-ratio : 2{

      html {
    font-size: 37.5px;
  }
}
方法二、js计算
document.getElementsByTagName('html')[0].style.fontSize = window.innerWidth / 10 + 'px';
 
1.5、rem适配进阶
当ui使用ipone6(375px)作为设计基准,完成的设计图分辨率双倍的原因是iphone6属于高清屏,设备像素比(device pixel ratio)dpr为2。
通过js的window.devicePixelRatio(这个方法在安卓上可能不准确)获取到当前设备的dpr,拿到了dpr之后就可以在viewport meta头里,取消让浏览器自动缩放页面,而自己去设置viewport的content
meta.setAttribute('content', 'initial-scale=' + 1/dpr + ', maximum-scale=' + 1/dpr + ', minimum-scale=' + 1/dpr + ', user-scalable=no');
 
这样一来在开发时就可以设置font-size为设计图大小,这里iphone6设计图font-size就为75px,而且还解决了图片高清问题和1像素边框的问题
 

       

二、淘宝flexible方案(https://github.com/amfe/article/issues/17)。

 


移动端自适应

此代码加到head标签里面,加入后可随不同机型的移动设备,设置html的fontSize大小,这样子用rem可作为解决移动端自适应的方案 !function(N,M){functionL(){vara=I.getBoundingClientRect().width;a/F>750&&(a=750*F);vard=a/10;I.style.fontSize=d+"px 查看详情

移动端自适应布局方案尝试

原文地址:移动端自适应布局方案尝试问题刚开始接触移动端H5页面的时候最困扰的几个问题是:6或6p上明明是1px的边框怎么就成了2px或3px辣么粗!图片,div等如何等比自适应设计图后来慢慢知道了第一点是由于retina屏幕下设备... 查看详情

移动端自适应解决方案

http://dudodo.cc/2017/06/01/%E7%A7%BB%E5%8A%A8%E7%AB%AF%E8%87%AA%E9%80%82%E5%BA%94%E8%A7%A3%E5%86%B3%E6%96%B9%E6%A1%88/#more  设计稿640640px=6.4rem100px=1rem10px=0.1rem1px=0.01rem (functio 查看详情

(转)移动端自适应方案

研究样本手淘 ml.js天猫首页手机携程一个月前去了css开发者大会,听到了手淘的自适应方案,想起之前一直就想了解ml.js到底干了什么事。回来仔细研究了一下,抱着好奇心一并看了同样类型的网站的方案,深入学习一下。... 查看详情

移动端自适应布局方案尝试

问题刚开始接触移动端H5页面的时候最困扰的几个问题是:6或6p上明明是1px的边框怎么就成了2px或3px辣么粗!图片,div等如何等比自适应设计图后来慢慢知道了第一点是由于retina屏幕下设备像素比的问题造成,第二点知道了单位r... 查看详情

echars移动端自适应学习笔记

有时会出现一个图表需要同时在PC、移动端上展现的场景。这需要ECharts内部组件随着容器尺寸变化而变化的能力。为了解决这个问题,ECharts完善了组件的定位设置,并且实现了类似 CSSMediaQuery 的自适应能力。ECharts组件的... 查看详情

移动端自适应处理页面布局

处理页面大概会有若干种方案:第一种就是使用bootstrap;自己使用自适应单位常用的rem,em,及别人封装好的插件flexble.js;在使用flexble.js;时发现两个问题,高度没有很好的展现,有时会比设计稿低,会造成页面扁平不好看,第二种就... 查看详情

移动端自适应字体大小

设置1rem=100pxwindow.addEventListener((‘orientationchange‘inwindow?‘orientationchange‘:‘resize‘),(function(){functionc(){varhtml=document.documentElement;html.style.fontSize=100*(html.clientWidth/375)+‘ 查看详情

jsp页面在移动端自适应,chrome浏览器没问题,可是safari浏览器有问题的解决方法

在网页中设置的1px与物理像素中的1px不会相同,所以导致不同在不同手机上显示结果都不相同,通过以下设置找到了适合当前网页自适应不同手机、不同浏览器的办法,代码如下: “<metaname="viewport"content="width=620px,initial-sc... 查看详情

移动端自适应方案(代码片段)

...显示精度问题一像素显示问题,缩放导致的像素适应问题移动端的自适应问题http://www.cnblogs.com/520yan...http://www.cnblogs.com/520yan...https://mp.weixin.qq.com/s?__...https://github.com/amfe/artic...1、图片精度问题其实图片显示高清的问题,最理想的... 查看详情

移动端自适应rem的设置

...果有层层嵌套的话会导致这个值非常大或者非常小。在写移动端页面的时候为了使页面能够适应多种尺寸的移动设备大小,通常会用rem来表示各个元素的大小。rem:fontsizeoftherootelement,即相对于根元素字体的大小。因此,在开发... 查看详情

vue-cli+postcss实现移动端自适应

基于vue-cli3创建一个移动端项目vueaddvue-h5cdvue-h5npmrunserve安装postcss相关插件由于vue-cli已经内置了postcss,只需要安装相关插件,就可以实现vw/vh自适应布局。npmi--savepostcss-aspect-ratio-minipostcss-px-to-viewportpostcss-write-svgpostcss-cssnext 查看详情

metaviewport设置移动端自适应

1、viewport移动设备上的viewport是设备屏幕上用来显示网页的那部分区域,再具体一点就是浏览器上用来显示网页的那部分区域,但viewport又不局限于浏览器可视区域的大小,它可能比浏览器的可视区域大,也可能比浏览器的可视... 查看详情

vue-cli3+px2rem-loader+scss移动端自适应配置

...:在vue.config.js中配置:然后重启脚手架《vue移动端h5适配解决方案(remorvw)》《vue-cli3+lib-flexible+postcss-px2rem+less》 查看详情

浅谈移动端的自适应问题——响应式rem/em利用js动态实现移动端自适应

  随着3G的普及,越来越多的人使用手机上网。移动设备正超过桌面设备,成为访问互联网的最常见终端。于是,网页设计师不得不面对一个难题:如何才能在不同大小的设备上呈现同样的网页?本篇文章将讲述自适应网页设... 查看详情

viewport原理和使用和设置移动端自适应的方法

viewport原理和使用和设置移动端自适应的方法HTML中:<metaname="viewport"content="width=device-width,initial-scale=1.0,maximum-scale=1.0,user-scalable=0">  该meta标签的作用是让当前viewport的宽度等于设备的宽度,同时不允许用户手动缩放。当然m... 查看详情

vue3.0+vite实现移动端自适应布局

参考技术A然后再main.ts中引入amfe-flexible最后启动项目就会发现px已经是自适应的单位,如果想用原来的px只需改成大写的PX单位即可 查看详情

px2rem移动端自适应方案

...那么宽度则为640px或750px,因此先在chrome调试工具中获取移动端的<html>根元素的font-size的值,然后在配置vue-loader时将其设为remUnit参数的值:这样就可以根据设计稿尺寸,在开发时写CSS像素的绝对值,即px单位,px2rem会自动将尺... 查看详情