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';