H5開發(fā)由于不存在android dip這種相對(duì)單位,所以在適配時(shí)多多少少會(huì)出現(xiàn)兼容性問題。
rem是CSS3新引進(jìn)來(lái)的一個(gè)度量單位,是直接相對(duì)于根元素,這就避開了很多層級(jí)關(guān)系。移動(dòng)端新型瀏覽器對(duì)rem的兼容很好,可以放心使用。
以下寫法是默認(rèn) 1rem = 18px
//使用相對(duì)單位rem
var designW = 375; //設(shè)計(jì)稿寬
var font_rate = 18; //字體大小
//根據(jù)窗口寬度適配fontsize
document.getElementsByTagName("html")[0].style.fontSize = document.body.offsetWidth / designW * font_rate + "px";
document.getElementsByTagName("body")[0].style.fontSize = document.body.offsetWidth / designW * font_rate + "px";
//監(jiān)測(cè)窗口大小變化
window.addEventListener("onorientationchange" in window ? "orientationchange" : "resize",
function() {
document.getElementsByTagName("html")[0].style.fontSize = document.body.offsetWidth / designW * font_rate + "px";
document.getElementsByTagName("body")[0].style.fontSize = document.body.offsetWidth / designW * font_rate + "px";
}, false);
//使用相對(duì)單位rem
所以在CSS標(biāo)注單位時(shí)
width:180px;
轉(zhuǎn)化為下面這種寫法
width:10rem;//轉(zhuǎn)換計(jì)算后為180/18=10rem