首先: 如果我們在做單獨移動端網站或者app的時候 我建議 使用 rem ;
他能讓我們在手機各個機型的適配方面;大大減少我們代碼的重復性,是我們的代碼更兼容。
下面兩個圖一個調試在常用的機型 iPhone6 寬度是375*667 (一般的手頁面的原型圖為 750* ...) 另一個是我們最常出現問題的機型 iPhone5 因為是小機型所以比較容易出問題(錯位!!!!)。
這是我使用 rem 作為單位;通過js讀取屏幕的寬度 以原型圖寬度為標准;進行整個頁面的font-size 設置;
(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) {//大於750 按750算 docEl.style.fontSize = '100px'; } else {//小於750的按百分比縮減 docEl.style.fontSize = 100 * (clientWidth / 750) + 'px'; } };
以750為例 瀏覽器讀出代碼為 代碼中的750 可換成對應原型圖的寬度 方便計算 。
缺點:
局限性; rem
目前ie不支持 對pc頁面來講使用次數不多;
數據量大:所有的圖片,盒子都需要我們去給一個准確的值;才能保證不同機型的適配;
@media
應用廣泛 適用於 pc端 手機頁面,通常做自適應布局時 我們比較常用。
幾個常用臨界點
正常編寫 適用於 1200----1440的台式機
1、@media (max-width: 1199px) - - - - //小於1199的設備
2、@media (max-width: 991px) - - - - //小於991的設備
3、@media (max-width: 767px) - - - - //小於768的設備
這樣 我們頁面就分為了4個部分 正常的台式機 筆記本 平板 手機
每個部都可以根據自己的設計圖去重新編寫自己的樣式
缺點:相對於代碼要重復很多 ; 可能存在閃屏的問題出現 解決辦法 http://blog.csdn.net/small_tu/article/details/47317453