使用rem實(shí)現(xiàn)H5元素自適應(yīng)

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
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容