zoukankan      html  css  js  c++  java
  • 手机端页面自适应解决方案—rem布局

    只需在页面引入这段原生js代码就可以了

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    (function (doc, win) {
           var docEl = doc.documentElement,
               resizeEvt = 'orientationchange' in window ? 'orientationchange' 'resize',
               recalc = function () {
                   var clientWidth = docEl.clientWidth;
                   if (!clientWidth) return;
                   if(clientWidth>=640){
                       docEl.style.fontSize = '100px';
                   }else{
                       docEl.style.fontSize = 100 * (clientWidth / 640) + 'px';
                   }
               };
     
           if (!doc.addEventListener) return;
           win.addEventListener(resizeEvt, recalc, false);
           doc.addEventListener('DOMContentLoaded', recalc, false);
       })(document, window);

    如何使用?

    这是rem布局的核心代码,这段代码的大意是:
    如果页面的宽度超过了640px,那么页面中html的font-size恒为100px,否则,页面中html的font-size的大小为: 100 * (当前页面宽度 / 640)

    为什么是640px?

    设计图一般是640px的,这样相当于100px = 1rem,可以方便计算;

    因为是640px所以应限制下页面的大小,所以最外层的盒子应该是:

    1
    2
    3
    4
    5
    position: relative;
    100%;
    max- 640px;
    min- 320px;
    margin: 0 auto;

      

    重要:可以根据自己的设计图进行修改。

                           (function (doc, win) {
    				var docEl = doc.documentElement,
    				resizeEvt = 'orientationchange' in window ? 'orientationchange' : 'resize',
    				recalc = function () {
    				var clientWidth = docEl.clientWidth;
    				if (!clientWidth) return;
    					if(clientWidth>=750){
    	                   docEl.style.fontSize = '20px';
    	               }else{
    	                  docEl.style.fontSize = 30* (clientWidth / 750) + 'px';
    	               }
    				};
    				
    				if (!doc.addEventListener) return;
    				win.addEventListener(resizeEvt, recalc, false);
    				doc.addEventListener('DOMContentLoaded', recalc, false);
    				})(document, window);
    

      

    body{background: #ccc;font-size: 1.0rem;} 	
    

      公司设计图为750.修改设计图适配750,大于750像素的设计图。设置font-size:20px;

         引用了JS以后,设计图上像素如宽为100px;就按1:1的比例rem换算单位。自己理解的,如有不当,请指正。

    学习是一个不断抄袭和重复的过程.
  • 相关阅读:
    Elasticsearch节点下线(退役)and unassigned shards
    详解Hbase架构原理
    docker安装(yum方式)
    矩形的逆时针蛇形填数
    CentOS7安装iptables防火墙
    Linux:-bash: ***: command not found
    两个大数相乘JAVA版
    SQL Server 2012时出现命名管道提供程序: 无法打开与 SQL Server 的连接
    jstl函数库及自定义函数库
    This Android SDK requires Android Developer Toolkit version 23.0.0 or above
  • 原文地址:https://www.cnblogs.com/gzya/p/6971267.html
Copyright © 2011-2022 走看看