Vue-cli3 屏幕自適應(yīng)

在項(xiàng)目中為了屏幕適配,經(jīng)常會(huì)用到rem,postcss-px2rem就是為了讓我們直接在將代碼中px自動(dòng)轉(zhuǎn)化成對(duì)應(yīng)的rem的一個(gè)插件

如何使用:

1.安裝

npm i postcss-px2rem --save-dev

2.設(shè)置vue.config.js

css: {
    // 啟用 CSS modules
    modules: false,
    // 是否使用css分離插件
    extract: true,
    // 開(kāi)啟 CSS source maps?
    sourceMap: false,
    // css預(yù)設(shè)器配置項(xiàng)
    loaderOptions: {
      // 導(dǎo)入scss變量
      scss: {
      //  prependData: `@import "@/assets/variable.scss";`
      },
      postcss: {
        plugins: [
          //remUnit這個(gè)配置項(xiàng)的數(shù)值是多少呢??? 通常我們是根據(jù)設(shè)計(jì)圖來(lái)定這個(gè)值,原因很簡(jiǎn)單,便于開(kāi)發(fā)。
          //假如設(shè)計(jì)圖給的寬度是750,我們通常就會(huì)把remUnit設(shè)置為75,這樣我們寫(xiě)樣式時(shí),可以直接按照設(shè)計(jì)圖標(biāo)注的寬高來(lái)1:1還原開(kāi)發(fā)。
          require('postcss-px2rem')({remUnit: 16}), // 換算的基數(shù)
        ]
      }
    }
  },

3.轉(zhuǎn)換的rem是根據(jù)html根節(jié)點(diǎn)fontSize轉(zhuǎn)換的。要想隨窗口自適應(yīng),就要?jiǎng)討B(tài)根節(jié)點(diǎn)字體大小

public目錄下創(chuàng)建rem.js

// 基準(zhǔn)大小
const baseSize = 16
// 設(shè)置 rem 函數(shù)
function setRem() {
  // 當(dāng)前頁(yè)面寬度相對(duì)于 750 寬的縮放比例,可根據(jù)自己需要修改。
  const scale = document.documentElement.clientWidth / 1920
  // 設(shè)置頁(yè)面根節(jié)點(diǎn)字體大小
  document.documentElement.style.fontSize = baseSize * Math.min(scale, 2) + 'px'
}
// 初始化
setRem()
// 改變窗口大小時(shí)重新設(shè)置 rem
window.addEventListener('resize', setRem);

main.js中使用

(function() {
  var rem = document.createElement("script");
  rem.src = "./rem.js";
  document.body.appendChild(rem);
})();
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

友情鏈接更多精彩內(nèi)容