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-width: 768px) { } @media only screen and (min-width: 769px) and (max-width: 1000px) { } @media only screen and (min-width: 1001px) and (max-width: 1440px) { } @media only screen and (min-width: 1440px) and (max-width: 1920px) { }
4.最后將步驟2和3結合起來使用,即768px下以750px為標准使用rem單位,768px以上分區間處理或柵格處理
個人拙見,忘不吝賜教