移动端布局

移动端布局

标签(空格分隔): 未分类


预备知识

  • Device Pixels 设备屏幕的物理像素,硬件指标,这个就是指铺多少点,和编程关系不大。
  • dpr==dppx (Number of device pixels per CSS Pixel) 设备像素比表示1个CSS像素(宽度)等于几个物理像素(宽度)。 window.devicePixelRatio可以得到这个值
  • CSS Pixels web编程中的概念。所以,1个CSS像素在不同设备上可能对应不同的物理像素数,这个比值是设备的属性(Device Pixel Ratio,dpr)
    在CSS规范中,长度单位可以分为绝对单位和相对单位。px是一个相对单位,相对的是设备像素(Device Pixels)。比如iPhone5使用的是Retina视网膜屏幕,用2x2的Device Pixel代表1x1的CSS Pixel,所以设备像素数为640x1136px,而CSS逻辑像素数为320x568px
  • viewport 在没有缩放的情况下,屏幕的CSS像素宽度其实是指理想视口的宽度,而meta标签:
    <meta name="viewport" content="width=device-width,minimum-scale=1.0,maximum-scale=1.0,user-scalable=no"/>
    指定了布局视口=理想视口,并且禁止缩放。所以添上width=device-width的viewport meta后页面变大了(一开始页面内容小得看不清),实际上是布局视口变小了

现在知道为啥子移动端会出现1px问题了吧

关于设计稿

因为存在不同比例的尺寸的手机,设计师不可能对每个尺寸手机进行设计稿还原,一般来说,以ip6尺寸为宜。下面举例的时候以ip6为准。

ip6数据

尺寸

css Pixels :375667 这个就是你写代码的时候的尺寸
device Pixels: 750
1444 设计稿尺寸(注意/2)
dpr:2 表示1个css像素宽度等于2个


设计稿 ==> 静态页面

由上面例子我们可以看出,设计稿尺寸和css尺寸是有个2倍关系的,所以写css的时候无脑/2

  • 问题:我们拿到设计稿如何还原尺寸?

文字流式,控件弹性,图片等比缩放。

布局示例图

解释: 控件弹性指的是,navigation、cell、bar等适配过程中垂直方向上高度不变;水平方向宽度变化时,通过调整元素间距或元素右对齐的方式实现自适应。这样屏幕越大,在垂直方向上可以显示更多内容,发挥大屏幕的优势。


常规及技巧

  1. 一个典型的移动端布局meta头
    <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">
    逐个属性解释

    • width=device-width让屏幕看宽度等于设备宽度,简单点理解就是让手机浏览器的宽度适应手机屏幕
    • initial-scale=1 默认缩放比例
    • maximum-scale、minimum-scale及user-scalable属性控制允许用户以怎样的方式放大或缩小页面
  2. rem布局

    • 设置font-size.两种方式
      1. js设置
    document.addEventListener('DOMContentLoaded', function(e) {
                document.getElementsByTagName('html')[0].style.fontSize = window.innerWidth / 10 + 'px';
    
     2. css设置
    

@media (min-device-width : 375px) and (max-device-width : 667px) and (-webkit-min-device-pixel-ratio : 2){
html{font-size: 37.5px;}
}
```
+ 转化尺寸
根据比例图转化尺寸,这一步没啥说的,你可以摆个计算器算,也可以用scss或者less写个函数自己转化。

参考资料

rem和设计稿
移动端适配多种设计稿
手淘适配方案
flexiable使用
1px问题

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

推荐阅读更多精彩内容

  • 一、meta标签的效果 移动端页面一般会在head头部添加如下meta标签。 该meta标签是否添加对页面渲染的影...
    nimw阅读 3,665评论 0 5
  • 2018/01/22更新 之前的rem方式在页面加载的时候会有个重置css的过程,导致了初始化的时候会出现页面从小...
    WS林海峰阅读 10,658评论 8 28
  • 我在地球的这一端 你在地球的另一端 我看着蓝蓝的天 我看着咸蛋黄似的太阳 突然之间便想念着你 你从天上偷偷的关注着...
    Ling_00阅读 239评论 2 6
  • 刀光剑影乱世 生与死同样锋利 逆命而来骤雨 此生蜉蝣 抑或蝼蚁 萤火明灭 萍踪浪迹 我南征北战的马蹄 踏碎了烟火阑...
    怕生厌喜阅读 414评论 0 3
  • 2012年10月8日 周一 小雨 窗外下着蒙蒙细雨。山里的树叶大部分已经掉落,有些树木开始露出了光秃秃的枝...
    绣面芙蓉阅读 147评论 0 0