前端自適應布局 rem

2021-10-07 01:45:42 字數 1257 閱讀 5059

前端在開發應用的是偶難免需要考慮不同解析度的容器,本文主要介紹 - - 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設定為多少合適?看看這篇文章,也許能幫到你。目前有兩種,一種是根據...