首先我們要明確的是什么?
1、rem代表的是根節(jié)點(diǎn)html的font-size值熄浓,默認(rèn)值是16px,但是你也可以自行設(shè)置html的font-size值省撑,覆蓋默認(rèn)值赌蔑,例如:html{font-size:10px;},或者h(yuǎn)tml{font-size:62.5%;} /* 百分比相對(duì)于是默認(rèn)值16px */竟秫;
2娃惯、從ie6開(kāi)始各大瀏覽器廠商就已經(jīng)約定好了,所以不用擔(dān)心主流瀏覽器對(duì)rem的兼容性問(wèn)題肥败;但是仍然存在一些“非主流”的瀏覽器不兼容rem趾浅,這樣我們需要在rem的前面寫(xiě)上對(duì)應(yīng)的px值,從而實(shí)現(xiàn)優(yōu)雅降級(jí);
div{
font-size:32px;
font-size:2rem
}
如何利用rem來(lái)快速解決不同移動(dòng)端設(shè)備的一個(gè)適配問(wèn)題馒稍?
阿里的lib-flexible庫(kù)皿哨,直接引用CDN文件:<script src="http://g.tbcdn.cn/mtb/lib-flexible/0.3.4/??flexible_css.js,flexible.js"></script> , 它可以根據(jù)你的設(shè)備寬度來(lái)自動(dòng)設(shè)置根節(jié)點(diǎn)的font-size (rem)纽谒,這樣你就不用利用js對(duì)設(shè)備的屏幕尺寸進(jìn)行繁瑣的計(jì)算以及判斷证膨,而可以直接給所有的元素使用rem單位;
但是對(duì)于第一次使用rem來(lái)做移動(dòng)端適配的小伙伴還是一步步來(lái)鼓黔,下面是我另外一種解決方案:
首先我們要明確不能使用px單位來(lái)做適配央勒,以屏幕由大變小為例。
因?yàn)樽鳛閏ss的px像素(又稱(chēng)邏輯像素)單位澳化,在不同的viewport (視口寬度)它所占據(jù)的物理尺寸是一樣大的崔步,這就決定了px單位在適配方面的局限性,這里我說(shuō)下我的大致思路和具體實(shí)現(xiàn):
1缎谷、通過(guò)js獲取設(shè)備的屏幕寬度井濒;
2、將視口分成10個(gè)rem列林,也就是讓1rem=windowWidth / 10瑞你;(你也可以分成5個(gè),看個(gè)人)席纽;
3、然后通過(guò)js給html標(biāo)簽動(dòng)態(tài)設(shè)置內(nèi)聯(lián)樣式(這樣就完成了根字體的設(shè)置)
4撞蚕、接下來(lái)項(xiàng)目里面所有單位都采用rem設(shè)置润梯,無(wú)論是圖片還是文字,抑或是div等各種標(biāo)簽的尺寸;
下面是我的代碼