關(guān)于rem和em的區(qū)別
rem
?rem:`表示根元素的字體大小`(通常為``)
下面是一個動態(tài)設(shè)置html字體大小的公式
```
~function () {
window.addEventListener('resize', computed);
// 添加事件廉赔,當(dāng)設(shè)備尺寸改變,就執(zhí)行computed函數(shù)
computed();
function computed() {
var deviceW = document.documentElement.clientWidth || document.body.clientWidth;
// 獲取設(shè)備的寬度
if (deviceW > 640) return;
// 當(dāng)前案例是以640的設(shè)計稿為例措近,判斷,若是設(shè)備尺寸超過640漓帅,就不在執(zhí)行computed
document.documentElement.style.fontSize = deviceW / 640 * 100 + 'px';
// 100 這里的100是在屏幕尺寸為640的時候筹麸,html字體大小為100px夭坪,之所以設(shè)置100,是為了便于計算
// 設(shè)置html的字體大小? 這里是以640的設(shè)計稿為基準(zhǔn)胧谈,當(dāng)我們使用的設(shè)備寬度(deviceW)剛好為640的時候忆肾,html的? 字體大小為100px; 當(dāng)設(shè)備大小改變,小于640的時候菱肖, 就會觸發(fā)resize函數(shù)客冈,computed執(zhí)行,動態(tài)的獲取設(shè)備的寬度稳强,然后除以640场仲,就能計算出當(dāng)前設(shè)備大小是原設(shè)計稿的百分之多少和悦,然后乘以100,就能計算出當(dāng)前屏幕寬度下html的字體大小為多少? ? ? ? ? ? }
}();
```
`document.documentElement.style.fontSize `=xxxx? 這里是設(shè)置html字體大小
?以當(dāng)前的計算公式渠缕,若是設(shè)備尺寸為640鸽素,計算后`html`的字體大小為100px; `1rem` 就是100px; 若是屏幕尺寸縮小到320,`computed`函數(shù)會自動獲取屏幕的寬度亦鳞,重新計算html的字體大小馍忽,此時`html`字體大小應(yīng)為50,所以`1rem`就等于50px燕差,
而我們布局采用`rem`布局遭笋, `width:.5rem`,? 意思就是某個物體的寬度值相對于html的字體大小的值的百分比,`width:.5rem` 就是`width`的值相對于`html`字體大小的百分比為50%徒探。因為html隨著屏幕的大小改變坐梯,會不停的變化,所以width的值也會跟著改變
em
em和rem一樣都是相對單位刹帕,只不過em是以父級的font-size值決定的,當(dāng)最近的父級沒有設(shè)置font-size時,就會向上一層找谎替,若是還沒有就會一直向上找偷溺,直到找到html,若是還沒有钱贯,就按瀏覽器默認(rèn)字體大小挫掏,16px(在火狐和chrome);
px
?PX實際上就是像素,用PX設(shè)置字體大小時秩命,比較穩(wěn)定和精確
?一般瀏覽器支持的最小字體大小應(yīng)該為12px;