前端在開發應用的是偶難免需要考慮不同解析度的容器,本文主要介紹 - - rem來實現響應式布局
1、rem的介紹:
首先來看,什麼是rem單位。rem是乙個靈活的、可擴充套件的單位,由瀏覽器轉化畫素並顯示。與em單位不同,rem單位無論巢狀層級如何,都只相對於瀏覽器的根元素(html元素)的font-size。預設情況下,html元素的font-size為16px,所以:
1 rem = 16px
為了計算方便,通常可以將html的font-size設定成:
html
這樣:1 rem = 10px
2、通過rem來實現響應式布局 - - - rem單位都是相對於根元素html的font-size來決定大小的,根元素的font-size相當於提供了乙個基準,當頁面的size發生變化時,只需要改變font-size的值,那麼以rem為固定單位的元素的大小也會發生響應的變化。
因此,如果通過rem來實現響應式的布局,只需要根據檢視容器的大小,動態的改變font-size即可。
function refreshrem()
win.addeventlistener('resize', refreshrem);
上述**中將檢視容器分為10份,font-size用十分之一的寬度來表示,最後在header標籤中執行這段**,就可以動態定義font-size的大小,從而1rem在不同的視覺容器中表示不同的大小,用rem固定單位可以實現不同容器內布局的自適應。
3、 rem2px和px2rem
如果在響應式布局中使用rem單位,那麼存在乙個單位換算的問題,rem2px表示從rem換算成px,這個就不說了,只要rem乘以相應的font-size中的大小,就能換算成px。更多的應用是px2rem,表示的是從px轉化為rem。
比如給定的視覺稿為750px(物理畫素),如果我們要將所有的布局單位都用rem來表示,一種比較笨的辦法就是對所有的height和width等元素,乘以相應的比例,現將視覺稿換算成rem單位,然後乙個個的用rem來表示。另一種比較方便的解決方法就是,在css中我們還是用px來表示元素的大小,最後編寫完css**之後,將css檔案中的所有px單位,轉化成rem單位。
可以用webpack進行轉換:
npm install px2rem-loader
module.exports = , ,
}]}]
}或npm install postcss-loader
Rem 自適應布局
1.先引入一下js,到頭部的script標籤的最前面。2.根據設計稿大小,調整裡面的最後兩個引數值。3.使用1 rem 100px轉換你的設計稿的畫素,例如設計稿上某個塊是100px 300px,換算成 rem則為1 rem 3rem。上面的 如果在 uc瀏覽器下橫屏與豎屏轉換,發現 並沒有 自適應...
自適應rem布局
自適應處理 假設 function doc,win if doc.addeventlistener return win.addeventlistener resizeevt,recalc,false doc.addeventlistener domcontentloaded recalc,fals...
rem自適應布局
使用rem實現自適應布局,應該算是當前移動前端的一大趨勢,有些人對此還有點迷惑,搞不懂rem是如何實現自適應布局,如何根據設計稿來調整rem的值?rem布局如何用雪碧背景?rem一定要載入js嗎?rem的根html font size設定為多少合適?看看這篇文章,也許能幫到你。目前有兩種,一種是根據...