码迷,mamicode.com
首页 > 移动开发 > 详细

移动端适配--今日,你学识咗未吖

时间:2018-06-05 18:37:23      阅读:269      评论:0      收藏:0      [点我收藏+]

标签:text   层叠样   原理   cli   作者   式表   var   错误   ext   

移动端适配   是我以前开发中思考的最久的一个东西,上网找到的都是用什么库 框架 啊之类来解决适配问题的。

但经过一段时间的移动开发之后,总算不头疼这个问题了,以下就是我开发中用到的适配方式,可以说是非常详细的,希望能帮到需要帮助的猿!!

 

第一种方式:(代码 说明

  var screenWidth = 屏幕宽度
  var designWidth = 设计稿宽度
  var fontSize = 字体基础值
  var htmlPX;

 

 参数说明:

  屏幕宽度 就是指要适配的手机屏幕宽度
  设计稿宽度 就是指UI稿的宽度
  字体基础值 可以随便设置,但是这个会影响你实际布局的时候值的计算(数学好的当我没说过),我一般设置为100
  htmlPX 就是根节点的字体font-size值

 


 htmlPX 公式为:


  screenWidth / designWidth * fontSize = htmlPX;

 

 

 然后媒体查询就可以写成这样了

  @media only screen and (max-width: screenWidth),
  only screen and (max-device-width: screenWidth) {
    html,body {
      font-size: htmlPX;
    }

  },

  注意: 上面的变量全都要换成具体的值再放到里面的,要是直接复制粘贴过去,除了问题就别找我了。。

 

  然后在写css的时候,有px单位的(不考虑border的情况下)都要转成rem单位,并且数值要除以fontSize(这个最好设置100啦,容易计算;例如我盒子宽度设置150px,做成适配的rem布局就是150/100=1.5rem了)

 

 举个栗子:

 

  假如我要做适配,设计稿宽度为750,基础字体值为100,还有一些其他css,我要适配375,414,320屏幕的手机,那么我就在css文件里面这样写:

 

  

@media only screen and (max-width: 414px),
    only screen and (max-device-width: 414px) {
        html,body {
            font-size: 55.2px;
        }    
    
    };
    @media only screen and (max-width: 375px),
    only screen and (max-device-width: 375px) {
        html,body {
            font-size: 50px;
        }    
    
    };
    @media only screen and (max-width: 320px),
    only screen and (max-device-width: 320px) {
        html,body {
            font-size: 42.66666666666667px;
        }    
    
    };

    div {
        width: 1.5rem;
        padding: 0.2rem;
    }

  一般来说,宽度最好用百分比这样肯定不会出问题,如果非要用rem,那就愿天主与你同在,阿门!!

第二种方式: (代码 + 说明

 1.先设置header里面的meta标签:

    

<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0, user-scalable=0">

  这个设置有什么用我就不用说了,这个满大街都有,移动端必备的代码!!!

 

 2.在header写上<script>标签

  

<script type="text/javascript">
   document.documentElement.style.fontSize = document.documentElement.clientWidth / 640*100 + ‘px‘;
 </script>

  我们在写css的时候可以直接写rem, 然后数值就写从设计稿上量出来的px数值再除以100加上rem单位,就搞定收工!!

 上面这段代码的跟第一种方式原理一样的,不过第一种方式在电脑上进行调试比较方便,不用每次改变屏幕大小都要刷新一遍,而第二种方式在电脑上调试的时候就麻烦一点。(虽然只是一个F5而已。。)

 个人认为还是第一种比较好,因为层叠样式表(css)就是为了改变样式而产生的,而脚本(JavaScript)就是为了改变行为方式而产生的,所以适配还是用css来写比较符合W3C工作者的初衷。

 

 以上仅为个人观点,但内容目测和实测都可实现具体功能。

 不喜勿喷,,如有错误,欢迎指出,必回!!喜欢的就请留下个赞呗~~

 

移动端适配--今日,你学识咗未吖

标签:text   层叠样   原理   cli   作者   式表   var   错误   ext   

原文地址:https://www.cnblogs.com/brownChan/p/response_page.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!