天天看點

rem輕松掌控移動端頁面做法

rem(font size of the root element)是指相對于根元素的字型大小的機關。一旦根節點html 定義的 font-size 變化,那麼整個網頁中運用到 rem的也會随之變化。

目前主流的手機内嵌浏覽器核心版本均可以支援rem布局。

使用者浏覽網頁時,根據螢幕的尺寸,來向使用者展示更适合使用者的布局、文字、圖檔、按鈕等等,是以,rem應運而生。

源代碼:

(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 = '100px';
                }else{
                    docEl.style.fontSize = 100 * (clientWidth / 750) + 'px';
                }
            };
 
        if (!doc.addEventListener) return;
        win.addEventListener(resizeEvt, recalc, false);
        doc.addEventListener('DOMContentLoaded', recalc, false);
    })(document, window);
           

rem 特點

rem是CSS3新增的一個相對機關(root em,根em),這個機關引起了廣泛關注。這個機關與em有什麼差別呢?差別在于使用rem為元素設定字型大小時,仍然是相對大小,但相對的隻是HTML根元素。這個機關可謂集相對大小和絕對大小的優點于一身,通過它既可以做到隻修改根元素的font-size就能成比例地調整所有字型大小,又可以避免字型大小逐層複合的連鎖反應。目前,除了IE8及更早版本外,所有浏覽器均已支援rem。對于不支援它的浏覽器,應對方法也很簡單,就是多寫一個絕對機關的聲明。這些浏覽器會忽略用rem設定的字型大小。

若是低版本的裝置不支援rem,那麼就需要js來處理一下:

7.5為移動端頁面設計寬度(750px)

document.documentElement.style.fontSize = document.documentElement.clientWidth / 7.5 + 'px';