移动端适配问题

作者: b94618a7a3da | 来源:发表于2018-02-20 18:19 被阅读0次

    适配是什么:在不同尺寸的手机设备上,页面相对性的达到合理的展示(自适应)或者保持统一效果的等比缩放(看起来差不多)


    适配元素:

    1.字体

    2.宽高

    3.间距

    4.图像(图标、图片)  --比较复杂


    适配的方法:

    1.百分比适配

             百分比布局问题:

                      1.百分比的值不好计算

                      2.需要确定父级的大小,因为要根据父级的大小进行计算

                      3.宽度可以设置,但是高度不好设置

             总结:一般情况下百分比布局是需要配合其他的布局而使用


    2.比例缩放适配

             把所有机型的设备独立像素设置成一致的(以前淘宝使用过这种方法)

                      1.viewport需要通过js动态设置(不能直接把device的值设置成数值)

                      js代码:

    ```

                          (function(){

                              /**

                              以iPhone6 plus为例子:

                              原来的尺寸:  curweidth 414

                              要变成的尺寸:targetwidth 375

                              比例:scale  ?

                              换算scale方法:

                              如:414/比例=375

                              那么:比例=414/375

                              所以:scale=curweidth/targetwidth

                              */

                              varcutWidth = window.screen.width;

                              vartargetWidth = 375;

                              varscale=curWidth/targetWidth;

                              varmeta = document.createElement("meta");

                              meta.name='viewport';

                              meta.content='initial-scale='+scale+',minimum-scale='+scale+',maximum-scale='+scale+'';

                              document.head.appendChile(meta);

                      }()

    ```

                      2.通过设置比例(初始比例以及缩放比例),把宽度缩放成一致的

                      代码:

                      注意:viewport里给了缩放值以后,最终的页面的宽度是原来的值除以缩放比例

                      缺点:

                      1.就像viewport设置宽度的时候,可以吧宽度设置成一个固定值一样,会出现所有手机看上去都是同样的小没有分别了,不太好

                      2.算出的值在一些有小数的情况下可能会出现误差(无关紧要),因为设备独立像素不能有小数


    3.viewport适配

             比例缩放适配:根据dpr的值,吧饰扣进行缩放,缩放到wuli像素,也是把屏幕的尺寸直接设置成它对应的物理像素。(淘宝在用,不过他只处理了dpr为2的几个设置,以及iPhone6 plus)

             缺点:

             1.这种方法有时候不准确,比如dpr不为整数的时候,会出现除不尽的情况,那缩放的倍数会出现很长的小数,再去算物理像素的时候就会有误差

             2.如果屏幕的分辨率是非标准的话,算出的物理像素就是非标准的。

             /**

             同上个方法类似

             */

             js代码:

                      varscale=1/window.devicePixelRatio;

                      varmeta = document.createElement("meta");

                      meta.name='viewport';

                      meta.content='initial-scale='+scale+',minimum-scale='+scale+',maximum-scale='+scale+'';

                      document.head.appendChile(meta);

             }()


    4.rem适配

    什么是rem适配:

             px:绝对单位,给多少就是多少

             问题:不管屏幕尺寸怎么变化,它都不会变,做不到适配

             em:相对单位,相对于自身字体大小的值

             font-size:12px  1em=12px

             问题:

                      1.chrom下有最小字体限制,必须为12px,所以这个值不能小于12

                      2.如果两个一样的元素,但是里面字体不一样,那就不能

                      统一设置了,或者元素字体变化了,就又要统一设置一遍

             rem  CSS3新增的一个相对单位,相对于根节点(HTML)字体大小的值

                      r  root

                      html{font-size:10px}    2rem=20px

                      通过它就可以做到只修改根元素的大小,就能成比例地调整所有的字体大小,只依赖html字体的大小

    相关文章

      网友评论

        本文标题:移动端适配问题

        本文链接:https://www.haomeiwen.com/subject/ijvgtftx.html