rem
移動端適配:在移動端(手機端、Pad端),設備尺寸良莠不齊。若是想要寫完一套代碼,可以在全部移動設備上都正常運行,那麼採用原生的px
單位來設置是不行的。舉個例子:iPhone6
的尺寸是375px
,若是咱們想要一個盒子是佔據整個寬度的一半,那麼會將這個盒子的寬度設置爲187.5px
,可是並非全部手機的寬度都是375px
,所以就會形成問題。這時候咱們能夠經過rem
來解決這個問題。css
rem
:em
:當前元素字體大小相對於父標籤的字體大小。好比:
<div style="font-size:16px;"> <span style="font-size:2em">你好</span> </div>
在
div
中字體大小是16px
,而在span
標籤中由於用的是2em
,所以是2倍的父標籤字體的大小,也就是32px
。rem
:跟em
相似,只不過此時的參照元素不是父元素,而是根元素,也就是html
元素的大小。好比:
<html style="font-size:14px"> <div style="font-size:16px;"> <span style="font-size:2rem">你好</span> </div> </html>
此時的
span
標籤字體大小爲html
標籤字體大小的2倍,也就是28px
。rem
適配原理:rem
雖然自己是用來設置字體的大小,可是也能夠延伸到設置其餘屬性的尺寸。利用rem
咱們能夠實現等比縮放。好比我將一個頁面的寬度平均分紅100
份unit=windowWidth/100
,而後讓html
的font-size
等於unit
,那麼如下問題均可以實現:html
50rem
來實現(rem
是單位)。16px
,轉化成rem
就是:(16/unit)rem
。Vue-cli
中實現rem
佈局:在使用vue-cli
建立的項目中,咱們能夠經過一些第三方包來方便的實現rem
的佈局。要安裝兩個包,分別是:postcss-pxtorem
、lib-flexible
。安裝命令經過npm install --save-dev postcss-pxtorem lib-flexible
安裝便可。在安裝完包後,還須要配置兩個地方:vue
package.json
:
"postcss": { "plugins": { "autoprefixer": {}, "postcss-pxtorem": { "rootValue": 37.5, "propList": [ "*" ], "selectorBlackList": [ "van-*" ] } } }
main.js
:
import "lib-flexible"
這樣之後在寫單位的時候,就不須要換算成rem
,直接寫px
就能夠,postcss-pxtorem
會自動的將咱們寫的px
轉化成rem
。而lib-flexible
會根據當前的尺寸,來調整html
上的font-size
進行適配。vue-cli