移動端 設置 1rem = 100px


移動端的自適應,大部分我們用到的是rem,現在記錄一下,首先要了解 rem  的本質是什么,本質是根據根元素(html、body的字體大小進行自適應,說白了,就是1rem = 根元素的字體大小)

 

目前有好幾種  rem  適配方案,可以直接用   postcss-pxtorem(進行rem與px 的轉換) 配合   lib-flexible  (設置根元素字體的小)

問題描述: 想要的效果是,   大部分的設計稿是 寬 750px  的設計稿   想要設計成   1rem = 100px  設計稿量多少就寫多少px 或者用直接寫rem 時,直接除以100倍 如 7.5rem 

解決方案:

(1) 下載 postcss-pxtorem 插件,在package.json 中加入:

"postcss": {
    "plugins": {
      "autoprefixer": {},
      "postcss-pxtorem": {
        "rootValue": 100, 
        "selectorBlackList":[".van"], //一個對css選擇器進行過濾的數組 ,如 vant ui組件庫 不然會倍自動縮放
        "propList":["*"]
       }
    }
  }

  然后寫入一個 rem.js 文件,進行動態設置根元素的字體 ,並在 main.js 中引入(  import './rem'  )

function resizeFontsize(){
    var width = document.documentElement.clientWidth;
    document.documentElement.style.fontSize = width/7.5+'px'; 
    //width/(效果圖片寬度/文本字體大小(100))
}
resizeFontsize();
//改變橫屏豎屏執行效果更換
window.addEventListener('orientationchange',resizeFontsize);
//改變手機大小執行效果更換
window.addEventListener('resize',resizeFontsize);

(2)另一種方法是,配合 lib-flexible 使用,直接在 node_modules => lib-flexible => flexible.js 中修改,如圖:

         

 

 配置完之后,還有一個問題,就是當我們設置字體大小的時候,在750px 的設計稿中,量的字體假設是20px。放在375px 的屏幕上,會自動轉成0.2rem,而375px 的根元素的字體大小是 50px  所以那就是0.2*

50 為實際是 10px ,所以,解決方法有兩個,一個是,將字體設置的寫為 20PX 大寫 這樣,他就不會進行縮放,另一種是寫成40px。推薦第一種方法,簡單。 

效果展示:

 


免責聲明!

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



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