移動(dòng)端頁(yè)面單位的選擇(px, em, rem, vw)

px, em, rem的區(qū)別:

px:絕對(duì)字體大小
em:基于一個(gè)基數(shù)來(lái)計(jì)算出相對(duì)字體大小。(移動(dòng)端用的少)
rem:基于根節(jié)點(diǎn)(html)的字體大小來(lái)計(jì)算炸客。
vw:可視區(qū)寬度單位陌选。1vw等于可視區(qū)寬度的百分之一椎镣。

em

跟字體大小有關(guān)

  <style>
    #container{
      font-size: 20px;    /*1em = 20px*/
      width: 5em;   /* width = 20 * 5px*/
      height: 5em;    /* height = 20 * 5px*/
    }
    #box{
        width: 20em;       /* width = 20 * 20px*/
        height: 20em;      /* height = 20 * 20px*/
     }
  </style>
  <div id="container">
      <div id="box"></div>
  </div>

l瀏覽器默認(rèn)字體是16px,這里父級(jí)字體大小是20px,所以#box里的1em = 20px;即#box是一個(gè)長(zhǎng)寬均為400px的正方形

vw

vw單位和百分比很相似物邑,不同的是vw的值對(duì)所有的元素都一樣导坟,與他們父元素或父元素的寬度無(wú)關(guān)
以414寬度的屏幕為例
做一個(gè)200 * 200的盒子

<style>
  html {
    font-size: 4vm;     /* 4 * 4.14 = 16.56*/
  }
  #box{
    width:  12.077294685990339rem;   /* 200 / 16.56 = 12.077294685990339*/
    height: 12.077294685990339rem; 
  }
</style>
<div id='box'>
  
</div>
rem

rem 的字體大小直接與html的字體大小有關(guān)想罕。默認(rèn)是16px = 1rem;
我們可以給html設(shè)置10px的字體大小

html {
  font-size: 10px    /*即: 10px = 1rem*/
}

大多數(shù)瀏覽器(不包括ie8以下)都支持rem單位哑蔫,如果想都支持,可以

html{
  font-size: 10px    /* 或者 font-size: 62.5%*/  /* 10/16 = 62.5%*/
}
p{ font-size:15px; font-size:1.5rem}

可是這樣在實(shí)際開(kāi)發(fā)中弧呐,換算起來(lái)非常麻煩闸迷,所以,我們對(duì)此進(jìn)行了修改俘枫,根據(jù)手機(jī)屏幕的大小腥沽,做了自適應(yīng)。
首先鸠蚪,我們?cè)趆tml的head里邊設(shè)置html的font-size.

<style>
html{
font-size: 100px !important;
}
</style>

然后根據(jù)設(shè)計(jì)圖的尺寸和手機(jī)屏幕的尺寸進(jìn)行換算今阳。

//  designWidth: 設(shè)計(jì)稿的實(shí)際寬度值
//  maxWidth: 制作稿的最大寬度值
;(function(designWidth, maxWidth){
  var doc = document,
  win = window,
  docEl = doc.documentElement,
  remStyle = doc.createElement("style"),
  tid;
  function refreshRem() {
    var width = docEl.getBoundingClientRect().width;
    maxWidth = maxWidth || 540;
    width > maxWidth && (width = maxWidth);
    var rem = width * 100 / designWidth;
    remStyle.innerHTML = 'html{font-size:' + rem + 'px}';
  }
  if (docEl.firstElementChild) {
      docEl.firstElementChild.appendChild(remStyle);
  } else {
        var wrap = doc.createElement("div");
        wrap.appendChild(remStyle);
        doc.write(wrap.innerHTML);
        wrap = null;
  }
// 要等viewport設(shè)置好后才能執(zhí)行refreshRem,不然會(huì)執(zhí)行2次
refreshRem();
win.addEventListener("resize", function() {
  clearTimeout(tid);  // 防止執(zhí)行2次
  tid = setTimeout(refreshRem, 300)
},false)
win.addEventListener("pageshow", function(e){
  if(e.persisted) {
    clearTimeout(tid)  
    tid = setTimeout(refreshRem, 300)
   }
  }, false)
if (doc.readyState === "complete"){
  doc.body.style.fontSize = "16px"
 } else {
    doc.addEventListener("DOMContentLoaded",function(e){
    doc.body.style.fontSize = "16px"
  }, false)
 }
})(750, 750)

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末茅信,一起剝皮案震驚了整個(gè)濱河市盾舌,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌蘸鲸,老刑警劉巖妖谴,帶你破解...
    沈念sama閱讀 217,406評(píng)論 6 503
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異酌摇,居然都是意外死亡膝舅,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,732評(píng)論 3 393
  • 文/潘曉璐 我一進(jìn)店門(mén)窑多,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)仍稀,“玉大人,你說(shuō)我怎么就攤上這事埂息〖寂耍” “怎么了?”我有些...
    開(kāi)封第一講書(shū)人閱讀 163,711評(píng)論 0 353
  • 文/不壞的土叔 我叫張陵千康,是天一觀的道長(zhǎng)享幽。 經(jīng)常有香客問(wèn)我,道長(zhǎng)吧秕,這世上最難降的妖魔是什么琉闪? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 58,380評(píng)論 1 293
  • 正文 為了忘掉前任,我火速辦了婚禮砸彬,結(jié)果婚禮上颠毙,老公的妹妹穿的比我還像新娘。我一直安慰自己砂碉,他們只是感情好蛀蜜,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,432評(píng)論 6 392
  • 文/花漫 我一把揭開(kāi)白布。 她就那樣靜靜地躺著增蹭,像睡著了一般滴某。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上滋迈,一...
    開(kāi)封第一講書(shū)人閱讀 51,301評(píng)論 1 301
  • 那天霎奢,我揣著相機(jī)與錄音,去河邊找鬼饼灿。 笑死幕侠,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的碍彭。 我是一名探鬼主播晤硕,決...
    沈念sama閱讀 40,145評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼庇忌!你這毒婦竟也來(lái)了舞箍?” 一聲冷哼從身側(cè)響起,我...
    開(kāi)封第一講書(shū)人閱讀 39,008評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤皆疹,失蹤者是張志新(化名)和其女友劉穎疏橄,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體略就,經(jīng)...
    沈念sama閱讀 45,443評(píng)論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡软族,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,649評(píng)論 3 334
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了残制。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片立砸。...
    茶點(diǎn)故事閱讀 39,795評(píng)論 1 347
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖初茶,靈堂內(nèi)的尸體忽然破棺而出颗祝,到底是詐尸還是另有隱情,我是刑警寧澤恼布,帶...
    沈念sama閱讀 35,501評(píng)論 5 345
  • 正文 年R本政府宣布螺戳,位于F島的核電站,受9級(jí)特大地震影響折汞,放射性物質(zhì)發(fā)生泄漏倔幼。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,119評(píng)論 3 328
  • 文/蒙蒙 一爽待、第九天 我趴在偏房一處隱蔽的房頂上張望损同。 院中可真熱鬧翩腐,春花似錦、人聲如沸膏燃。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 31,731評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)组哩。三九已至等龙,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間伶贰,已是汗流浹背蛛砰。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 32,865評(píng)論 1 269
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留黍衙,地道東北人泥畅。 一個(gè)月前我還...
    沈念sama閱讀 47,899評(píng)論 2 370
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像们豌,于是被迫代替她去往敵國(guó)和親涯捻。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,724評(píng)論 2 354

推薦閱讀更多精彩內(nèi)容

  • 作者:HelKyle鏈接:http://www.w3cplus.com/css/when-to-use-em-vs...
    紅葉丶秋鳴閱讀 3,231評(píng)論 0 3
  • 問(wèn)答題47 /72 常見(jiàn)瀏覽器兼容性問(wèn)題與解決方案望迎? 參考答案 (1)瀏覽器兼容問(wèn)題一:不同瀏覽器的標(biāo)簽?zāi)J(rèn)的外補(bǔ)...
    _Yfling閱讀 13,751評(píng)論 1 92
  • ·##概念介紹:1.px(pixel,像素):是一個(gè)虛擬長(zhǎng)度單位摄欲,是計(jì)算機(jī)系統(tǒng)的數(shù)字化長(zhǎng)度單位轿亮,如果px要換算成物...
    小時(shí)候很帥的龍少閱讀 2,120評(píng)論 0 6
  • 概念介紹 px (pixel我注,像素):是一個(gè)虛擬長(zhǎng)度單位,是計(jì)算機(jī)系統(tǒng)的數(shù)字化圖像長(zhǎng)度單位迟隅,如果px要換算成物理長(zhǎng)...
    柯琦閱讀 1,993評(píng)論 0 7
  • 國(guó)內(nèi)的設(shè)計(jì)師大都喜歡用px但骨,而國(guó)外的網(wǎng)站大都喜歡用em和rem,那么三者有什么區(qū)別智袭,又各自有什么優(yōu)劣呢奔缠?PX特點(diǎn)1...
    xixihaha520閱讀 536評(píng)論 0 0