配置前言
項(xiàng)目構(gòu)建:基于vue-cli3構(gòu)建,使用postcss-px2rem px2rem-loader進(jìn)行rem適配
實(shí)現(xiàn)原理:每次打包培遵,webpack通過(guò)使用插件postcss-px2rem浙芙,幫我們自動(dòng)將px單位轉(zhuǎn)換成rem單位
前方有坑:UI框架部分組件使用JavaScript將css作為內(nèi)聯(lián)樣式直接寫(xiě)在html標(biāo)簽內(nèi)登刺,打包適配時(shí)不會(huì)讀取相關(guān)css,所以要配置相關(guān)樣式,在style中需要" !important "進(jìn)行樣式覆蓋嗡呼。
第一步纸俭,安裝postcss-px2rem及px2rem-loader
打開(kāi)命令行工具,輸入以下指令安裝插件(當(dāng)然用淘寶鏡像cnpm安裝會(huì)更快)
npm install postcss-px2rem px2rem-loader --save
第二步南窗,在根目錄src中新建util目錄下新建rem.js等比適配文件
// rem等比適配配置文件
// 基準(zhǔn)大小
const baseSize = 16
// 設(shè)置 rem 函數(shù)
function setRem () {
// 當(dāng)前頁(yè)面寬度相對(duì)于 1920寬的縮放比例揍很,可根據(jù)自己需要修改女轿。
const scale = document.documentElement.clientWidth / 1920
// 設(shè)置頁(yè)面根節(jié)點(diǎn)字體大泻爵妗(“Math.min(scale, 2)” 指最高放大比例為2,可根據(jù)實(shí)際業(yè)務(wù)需求調(diào)整)
document.documentElement.style.fontSize = baseSize * Math.min(scale, 2) + 'px'
}
// 初始化
setRem()
// 改變窗口大小時(shí)重新設(shè)置 rem
window.onresize = function () {
setRem()
}
第三步北救,在main.js中引入適配文件
import './util/rem'
第四步珍策,到vue.config.js中配置插件
// 引入等比適配插件
const px2rem = require('postcss-px2rem')
// 配置基本大小
const postcss = px2rem({
// 基準(zhǔn)大小 baseSize宅倒,需要和rem.js中相同
remUnit: 16
})
// 使用等比適配插件
module.exports = {
lintOnSave: true,
css: {
loaderOptions: {
postcss: {
plugins: [
postcss
]
}
}
}
}