vue 腳手架 項目中 px轉(zhuǎn)rem 的方法
px轉(zhuǎn)為rem
1> npm i lib-flexible --save
2> 在main.js中引入lib-flesible
import 'lib-flexible/flexible'
3> npm install px2rem-loader
4> 在build文件中找到util.js抢野,將px2rem-loader添加到cssLoaders中人柿,如:
const cssLoader = {
loader: 'css-loader',
options: {
sourceMap: options.sourceMap
}
}
//將px2rem-loader添加到cssLoader中叫惊。我這里設計稿750,因此設定75
const px2remLoader = {
loader: 'px2rem-loader',
options: {
remUnit: 75
}
}
5> 在generateLoaders方法中添加px2remLoader
function generateLoaders (loader, loaderOptions) {
// const loaders = options.usePostCSS ? [cssLoader, postcssLoader] : [cssLoader] 改為
// const loaders = [cssLoader,px2remLoader]
const loaders = options.usePostCSS ? [cssLoader, postcssLoader, px2remLoader] : [cssLoader, px2remLoader]
if (loader) {
loaders.push({
loader: loader + '-loader',
options: Object.assign({}, loaderOptions, {
sourceMap: options.sourceMap
})
})
}
//安裝依賴
npm install lib-flexible 或者 yarn add lib-flexible
讓網(wǎng)頁根據(jù)設備dpr和寬度漂洋,利用viewport和html根元素的font-size配合rem來適配不同尺寸的移動端設備
在main.js引入中:
import 'lib-flexible/flexible.js'
在package.json內(nèi)狈茉,在postcss內(nèi)添加:
"postcss": {
"plugins": {
"autoprefixer": {},
"postcss-pxtorem": {
"rootValue": 75, // 設計稿寬度的1/10,(JSON文件中不加注釋恼策,此行注釋及下行注釋均刪除)
"selectorBlackList": [ "vant" ],//忽略轉(zhuǎn)rem項瞭稼,列表中不進行轉(zhuǎn)rem
"propList":["*"] // 需要做轉(zhuǎn)化處理的屬性,如`hight`绘面、`width`欺税、`margin`等,`*`表示全部
}
}
},