使用css3的字體單位rem寫自適應(yīng)

對(duì)于rem,基本是給 html/body 元素定義一個(gè)字體大小,來作為整個(gè)頁面的參考值。在移動(dòng)端可以做到適配不同的手機(jī)分辨率,如果保持整體縮放,沒有設(shè)計(jì)上的差異可以不需要用到media query。
例如一個(gè)PSD,視覺稿是按照750px寬度*1080px高度來設(shè)計(jì),那么我們完全可以按照設(shè)計(jì)稿的尺寸設(shè)置瀏覽器尺寸,然后按照視覺稿上的尺寸來賦值給元素樣式,比如視覺稿標(biāo)尺顯示寬度是50PX,我們可以直接寫width:50px;頁面中所有尺寸都按照這樣來寫。
之后只需要設(shè)置頁面的rem大?。?/p>

html {
    font-size: calc(100vw/7.5);
}

100vw是設(shè)備的寬度,除以7.5可以讓1rem的大小在750寬度的屏幕下等于100px(之所以讓1rem等于100px,而不是1rem等于1px,是因?yàn)樵赾hrome下針對(duì)中文的最小字體是12px)。
之后替換頁面中的單位,把所有的px單位替換成rem,除以100,比如前面的50px,就是0.5rem這樣在750屏幕下,所有元素的尺寸還是和視覺稿的尺寸一樣。
而在其他尺寸的設(shè)備中,因?yàn)樵O(shè)備的寬度變小了,100vw/7.5得到的值,會(huì)相應(yīng)的變小,即rem的單位值會(huì)變小,頁面中所有的尺寸會(huì)等比例縮放。
這樣就可以做到針對(duì)任何分辨率的設(shè)備保持視覺一致了。最后,前面用到vw單位,但是低版本的設(shè)備可能不支持,那么我們可以用JS來處理:

 javascriptdocument.documentElement.style.fontSize = window.innerWidth/7.5+ 'px'
最后編輯于
?著作權(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),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

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