移動端前端適配方案20170707

來源:互聯網
上載者:User

標籤:data-   不同   scale   架構   name   script   var   方便   cti   

1.Meida Queries

meida queries 的方式可以說是我早期採用的布局方式,它主要是通過查詢裝置的寬度來執行不同的 css 代碼,最終達到介面的配置。核心文法是:

@media screen and (max-width: 600px) { /*當螢幕尺寸小於600px時,應用下面的CSS樣式*/  /*你的css代碼*/}
優點
  • media query可以做到裝置像素比的判斷,方法簡單,成本低,特別是對移動和PC維護同一套代碼的時候。目前像Bootstrap等架構使用這種方式布局
  • 圖片便於修改,只需修改css檔案
  • 調整螢幕寬度的時候不用重新整理頁面即可響應式展示
缺點
  • 代碼量比較大,維護不方便
  • 為了兼顧大螢幕或高清裝置,會造成其他裝置資源浪費,特別是載入圖片資源
  • 為了兼顧移動端和PC端各自響應式的展示效果,難免會損失各自特有的互動方式
  彈性布局

它的viewport是固定的:<meta name="viewport" content="width=device-width,initial-scale=1,maximum-scale=1,user-scalable=no">

根據rem將頁面放大dpr倍, 然後viewport設定為1/dpr.

  • 如iphone6 plus的dpr為3, 則頁面整體放大3倍, 1px(css單位)在plus下預設為3px(物理像素)
  • 然後viewport設定為1/3, 這樣頁面整體縮回原始大小. 從而實現高清。

這樣整個網頁在裝置內顯示時的頁面寬度就會等於裝置邏輯像素大小,也就是device-width。這個device-width的計算公式為:

裝置的物理解析度/(devicePixelRatio * scale),在scale為1的情況下,device-width = 裝置的物理解析度/devicePixelRatio 。

 

通過以下代碼來控制rem基準值(設計稿以720px寬度量取實際尺寸)

!function (d) {    var c = d.document;    var a = c.documentElement;    var b = d.devicePixelRatio;    var f;    function e() {      var h = a.getBoundingClientRect().width, g;      if (b === 1) {        h = 720      }      if(h>720) h = 720;//設定基準值的極限值      g                = h / 7.2;      a.style.fontSize = g + "px"    }    if (b > 2) {      b = 3    } else {      if (b > 1) {        b = 2      } else {        b = 1      }    }    a.setAttribute("data-dpr", b);    d.addEventListener("resize", function () {      clearTimeout(f);      f = setTimeout(e, 200)    }, false);    e()  }(window);

 

移動端前端適配方案20170707

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.