前端-移动端自适应解决方案

移动前端自适应适配布局解决方案

方案:

  1. 固定一个某些宽度,使用一个模式,加上少许的媒体查询方案
  2. 使用flexbox解决方案
  3. 使用百分比加媒体查询
  4. 使用rem

1. 简单问题简单解决

我觉得有些web app并一定很复杂,比如拉勾网,你看看它的页面在iphone4,iphone6,ipad下的样子就知道了:

前端-移动端自适应解决方案_第1张图片前端-移动端自适应解决方案_第2张图片

前端-移动端自适应解决方案_第3张图片

它的页面有一个特点,就是:

  • 顶部与底部的bar不管分辨率怎么变,它的高度和位置都不变
  • 中间每条招聘信息不管分辨率怎么变,招聘公司的图标等信息都位于条目的左边,薪资都位于右边

这种app是一种典型的弹性布局:关键元素高宽和位置都不变,只有容器元素在做伸缩变换。对于这类app,记住一个开发原则就好:文字流式,控件弹性,图片等比缩放。以图描述:

前端-移动端自适应解决方案_第4张图片

这个规则是一套基本的适配规则,对于这种简单app来说已经足够,同时它也是后面要说的rem布局的基础。另外对于拉勾这种app可能需要额外媒介查询对布局进行调整的就是小屏幕设备。举例来说,因为现在很多设计稿是根据iphone6的尺寸来的,而iphon6设备宽的逻辑的像素是375px,而iphone4的逻辑像素是320个像素,所以如果你根据设计稿做出来的东西,在iphone4里面可能显示不下,比如说拉钩网底部那个下载框,你对比看下就知道了,这是4:

前端-移动端自适应解决方案_第5张图片

这是6:·

前端-移动端自适应解决方案_第6张图片

6下面两边的间距比4多很多,说明拉勾对4肯定是做过适配的,从代码也可以证实这一点:

前端-移动端自适应解决方案_第7张图片

不过如果你拿到的是根据4的设计稿,那就没有问题,比4分辨率大的设备肯定能显示根据4的尺寸做出来的东西。

还有一点,这种情况css尺寸单位用px就好,不要用rem,避免增加复杂度。

2. 网易的做法

先来看看网易在不同分辨率下,呈现的效果:

前端-移动端自适应解决方案_第8张图片前端-移动端自适应解决方案_第9张图片

前端-移动端自适应解决方案_第10张图片

你可能感兴趣的:(前端-移动端自适应解决方案)