zoukankan      html  css  js  c++  java
  • 从1920*1080到移动端的响应式自适应结合

    1.先谈一下响应式和自适应的区别

    响应式:它是将已有的开发技巧(弹性网格布局、弹性图片、媒体和媒体查询)整合起来,针对任意设备对网页内容进行“完美”布局的一种显示机制。简言之,是一个网站能够兼容多个终端(手机、Pad、电脑)的布局方法,而不需要为每个终端书写一套特定版本的代码。

    自适应:移动端的发展带来了自适应布局。通过JS及CSS的控制,借助rem、百分比等相对度量单位,让代码在多种分辨率的移动端正常呈现。自适应布局,是当前移动端实现网页布局的最常用的布局方法,需要综合使用多种知识。

    2.想要移动端各个机型下都能完美显示,首先想到的方法就是自适应的rem/百分比,现在一般手机版的设计稿会按750px作为一个标准尺寸,以下为rem.js(750px下100px=1rem)

    //根据屏幕设定html字体
    (function (doc, win) {
     var docEl = doc.documentElement,
     resizeEvt = 'orientationchange' in window ? 'orientationchange' : 'resize',
     recalc = function () {
      // 获取当前浏览器窗口宽度
      var clientWidth = docEl.clientWidth;
      var clientHeight = docEl.clientHeight;
      if (!clientWidth) return;
      // 设置字体大小
      docEl.style.fontSize = 100 * (clientWidth / 750) + 'px';
      // 当窗口大于750,设置字体为固定大小
      if(clientWidth>=750){
       docEl.style.fontSize = 100 * (750 / 750) + 'px';
      }
     };
     if (!doc.addEventListener) return;
     win.addEventListener(resizeEvt, recalc, false);
     doc.addEventListener('DOMContentLoaded', recalc, false);
    })(document, window);

    3.想要完美显示750px到1920px内容,有两种方案:

    一、bootstrap的栅格布局思想(此方案适用于列表项展示的栅格化内容展示);

    二、媒体查询(将此区间的分辨率分为几个区间,每个区间设置不同的宽、高、字体大小等内容)

    注:区间的划分,根据页面元素的布局挑选几个关键性节点。(依据的思想就是:当某个节点开始,上一步设置的元素大小已不再美观,就以此节点作为一个区间的开始)

    @media only screen and (max- 768px) {
        
    }
    @media only screen and (min- 769px) and (max- 1000px) {
        
    }
    @media only screen and (min- 1001px) and (max- 1440px) {
        
    }
    
    @media only screen and (min- 1440px) and (max- 1920px) {
        
    }

     4.最后将步骤2和3结合起来使用,即768px下以750px为标准使用rem单位,768px以上分区间处理或栅格处理

    个人拙见,忘不吝赐教

  • 相关阅读:
    http经典解析
    js实现canvas保存图片为png格式并下载到本地
    你所不知的 CSS ::before 和 ::after 伪元素用法
    js自动下载
    CSS 实现隐藏滚动条同时又可以滚动
    checkbox与文字对齐
    利用html2canvas截图,得到base64上传ajax
    bootstrap-datepicker简单使用
    移动端禁止滚动
    h5移动网页唤起App
  • 原文地址:https://www.cnblogs.com/duanzhenzhen/p/11136432.html
Copyright © 2011-2022 走看看