移动端布局

  • 从pc端到移动端, 布局上最大的改变就是要兼容不同大小的设备。

  • pc端虽然针对不同的屏幕大小,我们常用固定网页宽度,整体居中来实现。

  • 移动端则需要一套自适应的方案。

方案1 %

  • 宽度用%代替px。

但这种实现css可读性很差,百分比布局的时候依赖父容器的大小, 值的计算不方便。
子组件之间如果同时有百分比和px,往往需要给百分比额外加容器。

方案2 rem

用rem单位代替%, (vh,vw)

方案1的缺点都没有了。

但还是有一些细节不如人意

  • 为什么app上的border这么细,H5就不能细点吗?

  • 从设计稿的px 到 rem还是需要一个计算。

方案3 手淘flexible

原文 https://github.com/amfe/lib-flexible

  • 页面加载初始,引入一个js文件。

  • 对不同设备设置其对应的dpi。 (设备像素比(device pixel ratio))

  • *设备像素比 = 物理像素 / 设备独立像素

于是我们真正实现的页面大小是该设备能显示的物理像素大小。

然后通过 viewport 对网页缩放对应 dpi的倍数。

这种实现解决了 方案2中1px的问题。

  • 在不同dpi下,同一个dom需要不同的px。
  • 用sass封装了 px2rem, px2px来解决。
  • 我们实际写样式时再也不需要计算了。

方案2的第二个问题也随之解决。

缺点, 在引入飞flexible的组件时很痛苦。

总结

能忍受1px问题的情况下,
方案2 + px2rem足以。
追求完美可用方案3

3个方案与其说是解决方案,不如说是一个开发工具。
真正的什么时候去做自适应,什么要用px,什么用rem还是根据UI的要求和开发的经验。

1px问题详解

http://mutian.wang/tech/1570

原来方案3的1px也有缺点。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 一、meta标签的效果 移动端页面一般会在head头部添加如下meta标签。 该meta标签是否添加对页面渲染的影...
    nimw阅读 3,662评论 0 5
  • 这篇文章,主要是总结一下,在移动端布局用过的方法。有三种,一种是响应式布局,利用@meida判断各个size;第二...
    井皮皮阅读 467评论 1 2
  • 刚开始做移动端web开发的同学应该都碰到过页面适配问题,为什么我在开发手机上调试好的页面在其他手机会有这样或那样的...
    留七七阅读 19,557评论 5 80
  • 缓慢的节奏突破了精神防线 不要再打哈哈笑着说无所谓 无可表达的方式就是让你从此离去 跳跃的旋律伺机反击胜局 安静尚...
    张华琳阅读 218评论 0 0
  • 今天见了小郭同学的爸妈,慌的一比。。。
    会画画的段小姐阅读 155评论 0 0