基於rem的移動端自適應解決方案


adaptivejs原理:

利用rem布局,根據公式  

html元素字體大小 = document根節點(html)寬度 * 100 / 設計圖寬度  

計算html元素的font-size,使1rem等於100px,方便快速開發  
開發時,一個div設計圖寬度為89px,那么在css中我們可以這樣書寫:width:0.89rem;  
如果是文字,我們也建議使用rem 

對於iphone的retina高清顯示屏,基本版本(adaptive.js)我們做了縮放處理,以達到最佳顯示效果。 對於快速開發版本(adaptive-version2.js),viewport的width等於設備寬度,不會縮放 

github: https://github.com/finance-sh/adaptive

百度理財的H5站我們都采用這種方式開發,比如:
頁面: https://8.baidu.com/template/index/current.html

最大優點:

計算html元素的font-size,使1rem等於100px,方便快速開發  

adaptivejs利用rem解決移動端頁面開發的自適應問題

頁面模板初始化的時候不用設置viewport標簽,由js生成。

我們在head標簽的頂部引入js,按以下方法使用即可

使用方法:

在頁面head寫入以下代碼,實時更新html的fontsize:
<script src="js/adaptive.js"></script> // 有縮放,精確還原設計圖 <script src="js/adaptive-version2.js"></script> // 沒有縮放,能快速開發的版本 <script> window['adaptive'].desinWidth = 640;// 設計圖寬度 window['adaptive'].baseFont = 18;// 沒有縮放時的字體大小 window['adaptive'].maxWidth = 480;// 頁面最大寬度 默認540 window['adaptive'].init();// 調用初始化方法 </script> 

然后在css中設置相應樣式即可:

.main-info { height: 0.88rem; padding-bottom: 0.24rem; } .fund-info { position: relative; font-weight: normal; padding: 0.2rem 0; padding-right: 1.7rem; padding-left: 0.23rem; font-size: 0.32rem; line-height: 1; } 

注意:如果設計圖寬度大於document的寬度,0.01rem將小於1px,故如果設計圖是1px,在css中仍然用1px顯示。

可用的全局變量:window.devicePixelRatioValue 當前頁面設置的設備像素比

優化寬度問題

新增最大寬度,解決平板或手機橫屏時體驗不佳的問題

window['adaptive'].maxWidth = 480; // 設置最大寬度,默認540px

需要css配合使用,添加如下代碼:

body {
    max-width: 6.4rem; // 設計圖寬度為640px時為6.4rem ,750時為7.5rem ,以此類推 margin: 0 auto; } body * { max-width: 6.4rem; // 設計圖寬度為640px時為6.4rem ,750時為7.5rem ,以此類推 } 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM